macro_rules! opcodes {
    (
        pub struct $struct_name:ident {
            $(
                $(#[$attrs:meta])*
                pub const $const_name:ident : $const_type:ty = $const_value:expr;
            )*
        }
    ) => {
        pub struct $struct_name;

        impl $struct_name {
            $(
                $(#[$attrs])*
                #[allow(dead_code)]
                pub const $const_name: $const_type = $const_value;
            )*

            pub fn get_opcode_name(index: u32) -> Option<String> {
                match index {
                    $(
                        $const_value if $const_value == $const_value as u32 => Some(stringify!($const_name).to_string()),
                    )*
                    _ => None,
                }
            }
        }
    };
}

opcodes! {
    pub struct Opcode {
        pub const LOGIN_CHALLENGE: u8 = 0;
        pub const LOGIN_PROOF: u8 = 1;
        pub const REALM_LIST: u8 = 16;

        pub const MSG_NULL_ACTION: u16 = 0;
        pub const CMSG_BOOTME: u32 = 1;
        pub const CMSG_DBLOOKUP: u32 = 2;
        pub const SMSG_DBLOOKUP: u16 = 3;
        pub const CMSG_QUERY_OBJECT_POSITION: u32 = 4;
        pub const SMSG_QUERY_OBJECT_POSITION: u16 = 5;
        pub const CMSG_QUERY_OBJECT_ROTATION: u32 = 6;
        pub const SMSG_QUERY_OBJECT_ROTATION: u16 = 7;
        pub const CMSG_WORLD_TELEPORT: u32 = 8;
        pub const CMSG_TELEPORT_TO_UNIT: u32 = 9;
        pub const CMSG_ZONE_MAP: u32 = 10;
        pub const SMSG_ZONE_MAP: u16 = 11;
        pub const CMSG_DEBUG_CHANGECELLZONE: u32 = 12;
        pub const CMSG_MOVE_CHARACTER_CHEAT: u32 = 13;
        pub const SMSG_MOVE_CHARACTER_CHEAT: u16 = 14;
        pub const CMSG_RECHARGE: u32 = 15;
        pub const CMSG_LEARN_SPELL: u32 = 16;
        pub const CMSG_CREATEMONSTER: u32 = 17;
        pub const CMSG_DESTROYMONSTER: u32 = 18;
        pub const CMSG_CREATEITEM: u32 = 19;
        pub const CMSG_CREATEGAMEOBJECT: u32 = 20;
        pub const SMSG_CHECK_FOR_BOTS: u16 = 21;
        pub const CMSG_MAKEMONSTERATTACKGUID: u32 = 22;
        pub const CMSG_BOT_DETECTED2: u32 = 23;
        pub const CMSG_FORCEACTION: u32 = 24;
        pub const CMSG_FORCEACTIONONOTHER: u32 = 25;
        pub const CMSG_FORCEACTIONSHOW: u32 = 26;
        pub const SMSG_FORCEACTIONSHOW: u16 = 27;
        pub const CMSG_PETGODMODE: u32 = 28;
        pub const SMSG_PETGODMODE: u16 = 29;
        pub const SMSG_REFER_A_FRIEND_EXPIRED: u16 = 30;
        pub const CMSG_WEATHER_SPEED_CHEAT: u32 = 31;
        pub const CMSG_UNDRESSPLAYER: u32 = 32;
        pub const CMSG_BEASTMASTER: u32 = 33;
        pub const CMSG_GODMODE: u32 = 34;
        pub const SMSG_GODMODE: u16 = 35;
        pub const CMSG_CHEAT_SETMONEY: u32 = 36;
        pub const CMSG_LEVEL_CHEAT: u32 = 37;
        pub const CMSG_PET_LEVEL_CHEAT: u32 = 38;
        pub const CMSG_SET_WORLDSTATE: u32 = 39;
        pub const CMSG_COOLDOWN_CHEAT: u32 = 40;
        pub const CMSG_USE_SKILL_CHEAT: u32 = 41;
        pub const CMSG_FLAG_QUEST: u32 = 42;
        pub const CMSG_FLAG_QUEST_FINISH: u32 = 43;
        pub const CMSG_CLEAR_QUEST: u32 = 44;
        pub const CMSG_SEND_EVENT: u32 = 45;
        pub const CMSG_DEBUG_AISTATE: u32 = 46;
        pub const SMSG_DEBUG_AISTATE: u16 = 47;
        pub const CMSG_DISABLE_PVP_CHEAT: u32 = 48;
        pub const CMSG_ADVANCE_SPAWN_TIME: u32 = 49;
        pub const SMSG_DESTRUCTIBLE_BUILDING_DAMAGE: u16 = 50;
        pub const CMSG_AUTH_SRP6_BEGIN: u32 = 51;
        pub const CMSG_AUTH_SRP6_PROOF: u32 = 52;
        pub const CMSG_AUTH_SRP6_RECODE: u32 = 53;
        pub const CMSG_CHAR_CREATE: u32 = 54;
        pub const CMSG_CHAR_ENUM: u32 = 55;
        pub const CMSG_CHAR_DELETE: u32 = 56;
        pub const SMSG_AUTH_SRP6_RESPONSE: u16 = 57;
        pub const SMSG_CHAR_CREATE: u16 = 58;
        pub const SMSG_CHAR_ENUM: u16 = 59;
        pub const SMSG_CHAR_DELETE: u16 = 60;
        pub const CMSG_PLAYER_LOGIN: u32 = 61;
        pub const SMSG_NEW_WORLD: u16 = 62;
        pub const SMSG_TRANSFER_PENDING: u16 = 63;
        pub const SMSG_TRANSFER_ABORTED: u16 = 64;
        pub const SMSG_CHARACTER_LOGIN_FAILED: u16 = 65;
        pub const SMSG_LOGIN_SETTIMESPEED: u16 = 66;
        pub const SMSG_GAMETIME_UPDATE: u16 = 67;
        pub const CMSG_GAMETIME_SET: u32 = 68;
        pub const SMSG_GAMETIME_SET: u16 = 69;
        pub const CMSG_GAMESPEED_SET: u32 = 70;
        pub const SMSG_GAMESPEED_SET: u16 = 71;
        pub const CMSG_SERVERTIME: u32 = 72;
        pub const SMSG_SERVERTIME: u16 = 73;
        pub const CMSG_PLAYER_LOGOUT: u32 = 74;
        pub const CMSG_LOGOUT_REQUEST: u32 = 75;
        pub const SMSG_LOGOUT_RESPONSE: u16 = 76;
        pub const SMSG_LOGOUT_COMPLETE: u16 = 77;
        pub const CMSG_LOGOUT_CANCEL: u32 = 78;
        pub const SMSG_LOGOUT_CANCEL_ACK: u16 = 79;
        pub const CMSG_NAME_QUERY: u32 = 80;
        pub const SMSG_NAME_QUERY_RESPONSE: u16 = 81;
        pub const CMSG_PET_NAME_QUERY: u32 = 82;
        pub const SMSG_PET_NAME_QUERY_RESPONSE: u16 = 83;
        pub const CMSG_GUILD_QUERY: u32 = 84;
        pub const SMSG_GUILD_QUERY_RESPONSE: u16 = 85;
        pub const CMSG_ITEM_QUERY_SINGLE: u32 = 86;
        pub const CMSG_ITEM_QUERY_MULTIPLE: u32 = 87;
        pub const SMSG_ITEM_QUERY_SINGLE_RESPONSE: u16 = 88;
        pub const SMSG_ITEM_QUERY_MULTIPLE_RESPONSE: u16 = 89;
        pub const CMSG_PAGE_TEXT_QUERY: u32 = 90;
        pub const SMSG_PAGE_TEXT_QUERY_RESPONSE: u16 = 91;
        pub const CMSG_QUEST_QUERY: u32 = 92;
        pub const SMSG_QUEST_QUERY_RESPONSE: u16 = 93;
        pub const CMSG_GAMEOBJECT_QUERY: u32 = 94;
        pub const SMSG_GAMEOBJECT_QUERY_RESPONSE: u16 = 95;
        pub const CMSG_CREATURE_QUERY: u32 = 96;
        pub const SMSG_CREATURE_QUERY_RESPONSE: u16 = 97;
        pub const CMSG_WHO: u32 = 98;
        pub const SMSG_WHO: u16 = 99;
        pub const CMSG_WHOIS: u32 = 100;
        pub const SMSG_WHOIS: u16 = 101;
        pub const CMSG_CONTACT_LIST: u32 = 102;
        pub const SMSG_CONTACT_LIST: u16 = 103;
        pub const SMSG_FRIEND_STATUS: u16 = 104;
        pub const CMSG_ADD_FRIEND: u32 = 105;
        pub const CMSG_DEL_FRIEND: u32 = 106;
        pub const CMSG_SET_CONTACT_NOTES: u32 = 107;
        pub const CMSG_ADD_IGNORE: u32 = 108;
        pub const CMSG_DEL_IGNORE: u32 = 109;
        pub const CMSG_GROUP_INVITE: u32 = 110;
        pub const SMSG_GROUP_INVITE: u16 = 111;
        pub const CMSG_GROUP_CANCEL: u32 = 112;
        pub const SMSG_GROUP_CANCEL: u16 = 113;
        pub const CMSG_GROUP_ACCEPT: u32 = 114;
        pub const CMSG_GROUP_DECLINE: u32 = 115;
        pub const SMSG_GROUP_DECLINE: u16 = 116;
        pub const CMSG_GROUP_UNINVITE: u32 = 117;
        pub const CMSG_GROUP_UNINVITE_GUID: u32 = 118;
        pub const SMSG_GROUP_UNINVITE: u16 = 119;
        pub const CMSG_GROUP_SET_LEADER: u32 = 120;
        pub const SMSG_GROUP_SET_LEADER: u16 = 121;
        pub const CMSG_LOOT_METHOD: u32 = 122;
        pub const CMSG_GROUP_DISBAND: u32 = 123;
        pub const SMSG_GROUP_DESTROYED: u16 = 124;
        pub const SMSG_GROUP_LIST: u16 = 125;
        pub const SMSG_PARTY_MEMBER_STATS: u16 = 126;
        pub const SMSG_PARTY_COMMAND_RESULT: u16 = 127;
        pub const MSG_UPDATE_GROUP_MEMBERS: u16 = 128;
        pub const CMSG_GUILD_CREATE: u32 = 129;
        pub const CMSG_GUILD_INVITE: u32 = 130;
        pub const SMSG_GUILD_INVITE: u16 = 131;
        pub const CMSG_GUILD_ACCEPT: u32 = 132;
        pub const CMSG_GUILD_DECLINE: u32 = 133;
        pub const SMSG_GUILD_DECLINE: u16 = 134;
        pub const CMSG_GUILD_INFO: u32 = 135;
        pub const SMSG_GUILD_INFO: u16 = 136;
        pub const CMSG_GUILD_ROSTER: u32 = 137;
        pub const SMSG_GUILD_ROSTER: u16 = 138;
        pub const CMSG_GUILD_PROMOTE: u32 = 139;
        pub const CMSG_GUILD_DEMOTE: u32 = 140;
        pub const CMSG_GUILD_LEAVE: u32 = 141;
        pub const CMSG_GUILD_REMOVE: u32 = 142;
        pub const CMSG_GUILD_DISBAND: u32 = 143;
        pub const CMSG_GUILD_LEADER: u32 = 144;
        pub const CMSG_GUILD_MOTD: u32 = 145;
        pub const SMSG_GUILD_EVENT: u16 = 146;
        pub const SMSG_GUILD_COMMAND_RESULT: u16 = 147;
        pub const MSG_UPDATE_GUILD: u16 = 148;
        pub const CMSG_MESSAGECHAT: u32 = 149;
        pub const SMSG_MESSAGECHAT: u16 = 150;
        pub const CMSG_JOIN_CHANNEL: u32 = 151;
        pub const CMSG_LEAVE_CHANNEL: u32 = 152;
        pub const SMSG_CHANNEL_NOTIFY: u16 = 153;
        pub const CMSG_CHANNEL_LIST: u32 = 154;
        pub const SMSG_CHANNEL_LIST: u16 = 155;
        pub const CMSG_CHANNEL_PASSWORD: u32 = 156;
        pub const CMSG_CHANNEL_SET_OWNER: u32 = 157;
        pub const CMSG_CHANNEL_OWNER: u32 = 158;
        pub const CMSG_CHANNEL_MODERATOR: u32 = 159;
        pub const CMSG_CHANNEL_UNMODERATOR: u32 = 160;
        pub const CMSG_CHANNEL_MUTE: u32 = 161;
        pub const CMSG_CHANNEL_UNMUTE: u32 = 162;
        pub const CMSG_CHANNEL_INVITE: u32 = 163;
        pub const CMSG_CHANNEL_KICK: u32 = 164;
        pub const CMSG_CHANNEL_BAN: u32 = 165;
        pub const CMSG_CHANNEL_UNBAN: u32 = 166;
        pub const CMSG_CHANNEL_ANNOUNCEMENTS: u32 = 167;
        pub const CMSG_CHANNEL_MODERATE: u32 = 168;
        pub const SMSG_UPDATE_OBJECT: u16 = 169;
        pub const SMSG_DESTROY_OBJECT: u16 = 170;
        pub const CMSG_USE_ITEM: u32 = 171;
        pub const CMSG_OPEN_ITEM: u32 = 172;
        pub const CMSG_READ_ITEM: u32 = 173;
        pub const SMSG_READ_ITEM_OK: u16 = 174;
        pub const SMSG_READ_ITEM_FAILED: u16 = 175;
        pub const SMSG_ITEM_COOLDOWN: u16 = 176;
        pub const CMSG_GAMEOBJ_USE: u32 = 177;
        pub const CMSG_DESTROY_ITEMS: u32 = 178;
        pub const SMSG_GAMEOBJECT_CUSTOM_ANIM: u16 = 179;
        pub const CMSG_AREATRIGGER: u32 = 180;
        pub const MSG_MOVE_START_FORWARD: u16 = 181;
        pub const MSG_MOVE_START_BACKWARD: u16 = 182;
        pub const MSG_MOVE_STOP: u16 = 183;
        pub const MSG_MOVE_START_STRAFE_LEFT: u16 = 184;
        pub const MSG_MOVE_START_STRAFE_RIGHT: u16 = 185;
        pub const MSG_MOVE_STOP_STRAFE: u16 = 186;
        pub const MSG_MOVE_JUMP: u16 = 187;
        pub const MSG_MOVE_START_TURN_LEFT: u16 = 188;
        pub const MSG_MOVE_START_TURN_RIGHT: u16 = 189;
        pub const MSG_MOVE_STOP_TURN: u16 = 190;
        pub const MSG_MOVE_START_PITCH_UP: u16 = 191;
        pub const MSG_MOVE_START_PITCH_DOWN: u16 = 192;
        pub const MSG_MOVE_STOP_PITCH: u16 = 193;
        pub const MSG_MOVE_SET_RUN_MODE: u16 = 194;
        pub const MSG_MOVE_SET_WALK_MODE: u16 = 195;
        pub const MSG_MOVE_TOGGLE_LOGGING: u16 = 196;
        pub const MSG_MOVE_TELEPORT: u16 = 197;
        pub const MSG_MOVE_TELEPORT_CHEAT: u16 = 198;
        pub const MSG_MOVE_TELEPORT_ACK: u16 = 199;
        pub const MSG_MOVE_TOGGLE_FALL_LOGGING: u16 = 200;
        pub const MSG_MOVE_FALL_LAND: u16 = 201;
        pub const MSG_MOVE_START_SWIM: u16 = 202;
        pub const MSG_MOVE_STOP_SWIM: u16 = 203;
        pub const MSG_MOVE_SET_RUN_SPEED_CHEAT: u16 = 204;
        pub const MSG_MOVE_SET_RUN_SPEED: u16 = 205;
        pub const MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT: u16 = 206;
        pub const MSG_MOVE_SET_RUN_BACK_SPEED: u16 = 207;
        pub const MSG_MOVE_SET_WALK_SPEED_CHEAT: u16 = 208;
        pub const MSG_MOVE_SET_WALK_SPEED: u16 = 209;
        pub const MSG_MOVE_SET_SWIM_SPEED_CHEAT: u16 = 210;
        pub const MSG_MOVE_SET_SWIM_SPEED: u16 = 211;
        pub const MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT: u16 = 212;
        pub const MSG_MOVE_SET_SWIM_BACK_SPEED: u16 = 213;
        pub const MSG_MOVE_SET_ALL_SPEED_CHEAT: u16 = 214;
        pub const MSG_MOVE_SET_TURN_RATE_CHEAT: u16 = 215;
        pub const MSG_MOVE_SET_TURN_RATE: u16 = 216;
        pub const MSG_MOVE_TOGGLE_COLLISION_CHEAT: u16 = 217;
        pub const MSG_MOVE_SET_FACING: u16 = 218;
        pub const MSG_MOVE_SET_PITCH: u16 = 219;
        pub const MSG_MOVE_WORLDPORT_ACK: u16 = 220;
        pub const SMSG_MONSTER_MOVE: u16 = 221;
        pub const SMSG_MOVE_WATER_WALK: u16 = 222;
        pub const SMSG_MOVE_LAND_WALK: u16 = 223;
        pub const CMSG_MOVE_CHARM_PORT_CHEAT: u32 = 224;
        pub const CMSG_MOVE_SET_RAW_POSITION: u32 = 225;
        pub const SMSG_FORCE_RUN_SPEED_CHANGE: u16 = 226;
        pub const CMSG_FORCE_RUN_SPEED_CHANGE_ACK: u32 = 227;
        pub const SMSG_FORCE_RUN_BACK_SPEED_CHANGE: u16 = 228;
        pub const CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK: u32 = 229;
        pub const SMSG_FORCE_SWIM_SPEED_CHANGE: u16 = 230;
        pub const CMSG_FORCE_SWIM_SPEED_CHANGE_ACK: u32 = 231;
        pub const SMSG_FORCE_MOVE_ROOT: u16 = 232;
        pub const CMSG_FORCE_MOVE_ROOT_ACK: u32 = 233;
        pub const SMSG_FORCE_MOVE_UNROOT: u16 = 234;
        pub const CMSG_FORCE_MOVE_UNROOT_ACK: u32 = 235;
        pub const MSG_MOVE_ROOT: u16 = 236;
        pub const MSG_MOVE_UNROOT: u16 = 237;
        pub const MSG_MOVE_HEARTBEAT: u16 = 238;
        pub const SMSG_MOVE_KNOCK_BACK: u16 = 239;
        pub const CMSG_MOVE_KNOCK_BACK_ACK: u32 = 240;
        pub const MSG_MOVE_KNOCK_BACK: u16 = 241;
        pub const SMSG_MOVE_FEATHER_FALL: u16 = 242;
        pub const SMSG_MOVE_NORMAL_FALL: u16 = 243;
        pub const SMSG_MOVE_SET_HOVER: u16 = 244;
        pub const SMSG_MOVE_UNSET_HOVER: u16 = 245;
        pub const CMSG_MOVE_HOVER_ACK: u32 = 246;
        pub const MSG_MOVE_HOVER: u16 = 247;
        pub const CMSG_TRIGGER_CINEMATIC_CHEAT: u32 = 248;
        pub const CMSG_OPENING_CINEMATIC: u32 = 249;
        pub const SMSG_TRIGGER_CINEMATIC: u16 = 250;
        pub const CMSG_NEXT_CINEMATIC_CAMERA: u32 = 251;
        pub const CMSG_COMPLETE_CINEMATIC: u32 = 252;
        pub const SMSG_TUTORIAL_FLAGS: u16 = 253;
        pub const CMSG_TUTORIAL_FLAG: u32 = 254;
        pub const CMSG_TUTORIAL_CLEAR: u32 = 255;
        pub const CMSG_TUTORIAL_RESET: u32 = 256;
        pub const CMSG_STANDSTATECHANGE: u32 = 257;
        pub const CMSG_EMOTE: u32 = 258;
        pub const SMSG_EMOTE: u16 = 259;
        pub const CMSG_TEXT_EMOTE: u32 = 260;
        pub const SMSG_TEXT_EMOTE: u16 = 261;
        pub const CMSG_AUTOEQUIP_GROUND_ITEM: u32 = 262;
        pub const CMSG_AUTOSTORE_GROUND_ITEM: u32 = 263;
        pub const CMSG_AUTOSTORE_LOOT_ITEM: u32 = 264;
        pub const CMSG_STORE_LOOT_IN_SLOT: u32 = 265;
        pub const CMSG_AUTOEQUIP_ITEM: u32 = 266;
        pub const CMSG_AUTOSTORE_BAG_ITEM: u32 = 267;
        pub const CMSG_SWAP_ITEM: u32 = 268;
        pub const CMSG_SWAP_INV_ITEM: u32 = 269;
        pub const CMSG_SPLIT_ITEM: u32 = 270;
        pub const CMSG_AUTOEQUIP_ITEM_SLOT: u32 = 271;
        pub const CMSG_UNCLAIM_LICENSE: u32 = 272;
        pub const CMSG_DESTROYITEM: u32 = 273;
        pub const SMSG_INVENTORY_CHANGE_FAILURE: u16 = 274;
        pub const SMSG_OPEN_CONTAINER: u16 = 275;
        pub const CMSG_INSPECT: u32 = 276;
        pub const SMSG_INSPECT_RESULTS_UPDATE: u16 = 277;
        pub const CMSG_INITIATE_TRADE: u32 = 278;
        pub const CMSG_BEGIN_TRADE: u32 = 279;
        pub const CMSG_BUSY_TRADE: u32 = 280;
        pub const CMSG_IGNORE_TRADE: u32 = 281;
        pub const CMSG_ACCEPT_TRADE: u32 = 282;
        pub const CMSG_UNACCEPT_TRADE: u32 = 283;
        pub const CMSG_CANCEL_TRADE: u32 = 284;
        pub const CMSG_SET_TRADE_ITEM: u32 = 285;
        pub const CMSG_CLEAR_TRADE_ITEM: u32 = 286;
        pub const CMSG_SET_TRADE_GOLD: u32 = 287;
        pub const SMSG_TRADE_STATUS: u16 = 288;
        pub const SMSG_TRADE_STATUS_EXTENDED: u16 = 289;
        pub const SMSG_INITIALIZE_FACTIONS: u16 = 290;
        pub const SMSG_SET_FACTION_VISIBLE: u16 = 291;
        pub const SMSG_SET_FACTION_STANDING: u16 = 292;
        pub const CMSG_SET_FACTION_ATWAR: u32 = 293;
        pub const CMSG_SET_FACTION_CHEAT: u32 = 294;
        pub const SMSG_SET_PROFICIENCY: u16 = 295;
        pub const CMSG_SET_ACTION_BUTTON: u32 = 296;
        pub const SMSG_ACTION_BUTTONS: u16 = 297;
        pub const SMSG_INITIAL_SPELLS: u16 = 298;
        pub const SMSG_LEARNED_SPELL: u16 = 299;
        pub const SMSG_SUPERCEDED_SPELL: u16 = 300;
        pub const CMSG_NEW_SPELL_SLOT: u32 = 301;
        pub const CMSG_CAST_SPELL: u32 = 302;
        pub const CMSG_CANCEL_CAST: u32 = 303;
        pub const SMSG_CAST_RESULT: u16 = 304;
        pub const SMSG_SPELL_START: u16 = 305;
        pub const SMSG_SPELL_GO: u16 = 306;
        pub const SMSG_SPELL_FAILURE: u16 = 307;
        pub const SMSG_SPELL_COOLDOWN: u16 = 308;
        pub const SMSG_COOLDOWN_EVENT: u16 = 309;
        pub const CMSG_CANCEL_AURA: u32 = 310;
        pub const SMSG_EQUIPMENT_SET_ID: u16 = 311;
        pub const SMSG_PET_CAST_FAILED: u16 = 312;
        pub const MSG_CHANNEL_START: u16 = 313;
        pub const MSG_CHANNEL_UPDATE: u16 = 314;
        pub const CMSG_CANCEL_CHANNELLING: u32 = 315;
        pub const SMSG_AI_REACTION: u16 = 316;
        pub const CMSG_SET_SELECTION: u32 = 317;
        pub const CMSG_DELETEEQUIPMENT_SET: u32 = 318;
        pub const CMSG_INSTANCE_LOCK_RESPONSE: u32 = 319;
        pub const CMSG_DEBUG_PASSIVE_AURA: u32 = 320;
        pub const CMSG_ATTACKSWING: u32 = 321;
        pub const CMSG_ATTACKSTOP: u32 = 322;
        pub const SMSG_ATTACKSTART: u16 = 323;
        pub const SMSG_ATTACKSTOP: u16 = 324;
        pub const SMSG_ATTACKSWING_NOTINRANGE: u16 = 325;
        pub const SMSG_ATTACKSWING_BADFACING: u16 = 326;
        pub const SMSG_PENDING_RAID_LOCK: u16 = 327;
        pub const SMSG_ATTACKSWING_DEADTARGET: u16 = 328;
        pub const SMSG_ATTACKSWING_CANT_ATTACK: u16 = 329;
        pub const SMSG_ATTACKERSTATEUPDATE: u16 = 330;
        pub const SMSG_BATTLEFIELD_PORT_DENIED: u16 = 331;
        pub const CMSG_PERFORM_ACTION_SET: u32 = 332;
        pub const SMSG_RESUME_CAST_BAR: u16 = 333;
        pub const SMSG_CANCEL_COMBAT: u16 = 334;
        pub const SMSG_SPELLBREAKLOG: u16 = 335;
        pub const SMSG_SPELLHEALLOG: u16 = 336;
        pub const SMSG_SPELLENERGIZELOG: u16 = 337;
        pub const SMSG_BREAK_TARGET: u16 = 338;
        pub const CMSG_SAVE_PLAYER: u32 = 339;
        pub const CMSG_SETDEATHBINDPOINT: u32 = 340;
        pub const SMSG_BINDPOINTUPDATE: u16 = 341;
        pub const CMSG_GETDEATHBINDZONE: u32 = 342;
        pub const SMSG_BINDZONEREPLY: u16 = 343;
        pub const SMSG_PLAYERBOUND: u16 = 344;
        pub const SMSG_CLIENT_CONTROL_UPDATE: u16 = 345;
        pub const CMSG_REPOP_REQUEST: u32 = 346;
        pub const SMSG_RESURRECT_REQUEST: u16 = 347;
        pub const CMSG_RESURRECT_RESPONSE: u32 = 348;
        pub const CMSG_LOOT: u32 = 349;
        pub const CMSG_LOOT_MONEY: u32 = 350;
        pub const CMSG_LOOT_RELEASE: u32 = 351;
        pub const SMSG_LOOT_RESPONSE: u16 = 352;
        pub const SMSG_LOOT_RELEASE_RESPONSE: u16 = 353;
        pub const SMSG_LOOT_REMOVED: u16 = 354;
        pub const SMSG_LOOT_MONEY_NOTIFY: u16 = 355;
        pub const SMSG_LOOT_ITEM_NOTIFY: u16 = 356;
        pub const SMSG_LOOT_CLEAR_MONEY: u16 = 357;
        pub const SMSG_ITEM_PUSH_RESULT: u16 = 358;
        pub const SMSG_DUEL_REQUESTED: u16 = 359;
        pub const SMSG_DUEL_OUTOFBOUNDS: u16 = 360;
        pub const SMSG_DUEL_INBOUNDS: u16 = 361;
        pub const SMSG_DUEL_COMPLETE: u16 = 362;
        pub const SMSG_DUEL_WINNER: u16 = 363;
        pub const CMSG_DUEL_ACCEPTED: u32 = 364;
        pub const CMSG_DUEL_CANCELLED: u32 = 365;
        pub const SMSG_MOUNTRESULT: u16 = 366;
        pub const SMSG_DISMOUNTRESULT: u16 = 367;
        pub const SMSG_REMOVED_FROM_PVP_QUEUE: u16 = 368;
        pub const CMSG_MOUNTSPECIAL_ANIM: u32 = 369;
        pub const SMSG_MOUNTSPECIAL_ANIM: u16 = 370;
        pub const SMSG_PET_TAME_FAILURE: u16 = 371;
        pub const CMSG_PET_SET_ACTION: u32 = 372;
        pub const CMSG_PET_ACTION: u32 = 373;
        pub const CMSG_PET_ABANDON: u32 = 374;
        pub const CMSG_PET_RENAME: u32 = 375;
        pub const SMSG_PET_NAME_INVALID: u16 = 376;
        pub const SMSG_PET_SPELLS: u16 = 377;
        pub const SMSG_PET_MODE: u16 = 378;
        pub const CMSG_GOSSIP_HELLO: u32 = 379;
        pub const CMSG_GOSSIP_SELECT_OPTION: u32 = 380;
        pub const SMSG_GOSSIP_MESSAGE: u16 = 381;
        pub const SMSG_GOSSIP_COMPLETE: u16 = 382;
        pub const CMSG_NPC_TEXT_QUERY: u32 = 383;
        pub const SMSG_NPC_TEXT_UPDATE: u16 = 384;
        pub const SMSG_NPC_WONT_TALK: u16 = 385;
        pub const CMSG_QUESTGIVER_STATUS_QUERY: u32 = 386;
        pub const SMSG_QUESTGIVER_STATUS: u16 = 387;
        pub const CMSG_QUESTGIVER_HELLO: u32 = 388;
        pub const SMSG_QUESTGIVER_QUEST_LIST: u16 = 389;
        pub const CMSG_QUESTGIVER_QUERY_QUEST: u32 = 390;
        pub const CMSG_QUESTGIVER_QUEST_AUTOLAUNCH: u32 = 391;
        pub const SMSG_QUESTGIVER_QUEST_DETAILS: u16 = 392;
        pub const CMSG_QUESTGIVER_ACCEPT_QUEST: u32 = 393;
        pub const CMSG_QUESTGIVER_COMPLETE_QUEST: u32 = 394;
        pub const SMSG_QUESTGIVER_REQUEST_ITEMS: u16 = 395;
        pub const CMSG_QUESTGIVER_REQUEST_REWARD: u32 = 396;
        pub const SMSG_QUESTGIVER_OFFER_REWARD: u16 = 397;
        pub const CMSG_QUESTGIVER_CHOOSE_REWARD: u32 = 398;
        pub const SMSG_QUESTGIVER_QUEST_INVALID: u16 = 399;
        pub const CMSG_QUESTGIVER_CANCEL: u32 = 400;
        pub const SMSG_QUESTGIVER_QUEST_COMPLETE: u16 = 401;
        pub const SMSG_QUESTGIVER_QUEST_FAILED: u16 = 402;
        pub const CMSG_QUESTLOG_SWAP_QUEST: u32 = 403;
        pub const CMSG_QUESTLOG_REMOVE_QUEST: u32 = 404;
        pub const SMSG_QUESTLOG_FULL: u16 = 405;
        pub const SMSG_QUESTUPDATE_FAILED: u16 = 406;
        pub const SMSG_QUESTUPDATE_FAILEDTIMER: u16 = 407;
        pub const SMSG_QUESTUPDATE_COMPLETE: u16 = 408;
        pub const SMSG_QUESTUPDATE_ADD_KILL: u16 = 409;
        pub const SMSG_QUESTUPDATE_ADD_ITEM_OBSOLETE: u16 = 410;
        pub const CMSG_QUEST_CONFIRM_ACCEPT: u32 = 411;
        pub const SMSG_QUEST_CONFIRM_ACCEPT: u16 = 412;
        pub const CMSG_PUSHQUESTTOPARTY: u32 = 413;
        pub const CMSG_LIST_INVENTORY: u32 = 414;
        pub const SMSG_LIST_INVENTORY: u16 = 415;
        pub const CMSG_SELL_ITEM: u32 = 416;
        pub const SMSG_SELL_ITEM: u16 = 417;
        pub const CMSG_BUY_ITEM: u32 = 418;
        pub const CMSG_BUY_ITEM_IN_SLOT: u32 = 419;
        pub const SMSG_BUY_ITEM: u16 = 420;
        pub const SMSG_BUY_FAILED: u16 = 421;
        pub const CMSG_TAXICLEARALLNODES: u32 = 422;
        pub const CMSG_TAXIENABLEALLNODES: u32 = 423;
        pub const CMSG_TAXISHOWNODES: u32 = 424;
        pub const SMSG_SHOWTAXINODES: u16 = 425;
        pub const CMSG_TAXINODE_STATUS_QUERY: u32 = 426;
        pub const SMSG_TAXINODE_STATUS: u16 = 427;
        pub const CMSG_TAXIQUERYAVAILABLENODES: u32 = 428;
        pub const CMSG_ACTIVATETAXI: u32 = 429;
        pub const SMSG_ACTIVATETAXIREPLY: u16 = 430;
        pub const SMSG_NEW_TAXI_PATH: u16 = 431;
        pub const CMSG_TRAINER_LIST: u32 = 432;
        pub const SMSG_TRAINER_LIST: u16 = 433;
        pub const CMSG_TRAINER_BUY_SPELL: u32 = 434;
        pub const SMSG_TRAINER_BUY_SUCCEEDED: u16 = 435;
        pub const SMSG_TRAINER_BUY_FAILED: u16 = 436;
        pub const CMSG_BINDER_ACTIVATE: u32 = 437;
        pub const SMSG_PLAYERBINDERROR: u16 = 438;
        pub const CMSG_BANKER_ACTIVATE: u32 = 439;
        pub const SMSG_SHOW_BANK: u16 = 440;
        pub const CMSG_BUY_BANK_SLOT: u32 = 441;
        pub const SMSG_BUY_BANK_SLOT_RESULT: u16 = 442;
        pub const CMSG_PETITION_SHOWLIST: u32 = 443;
        pub const SMSG_PETITION_SHOWLIST: u16 = 444;
        pub const CMSG_PETITION_BUY: u32 = 445;
        pub const CMSG_PETITION_SHOW_SIGNATURES: u32 = 446;
        pub const SMSG_PETITION_SHOW_SIGNATURES: u16 = 447;
        pub const CMSG_PETITION_SIGN: u32 = 448;
        pub const SMSG_PETITION_SIGN_RESULTS: u16 = 449;
        pub const MSG_PETITION_DECLINE: u16 = 450;
        pub const CMSG_OFFER_PETITION: u32 = 451;
        pub const CMSG_TURN_IN_PETITION: u32 = 452;
        pub const SMSG_TURN_IN_PETITION_RESULTS: u16 = 453;
        pub const CMSG_PETITION_QUERY: u32 = 454;
        pub const SMSG_PETITION_QUERY_RESPONSE: u16 = 455;
        pub const SMSG_FISH_NOT_HOOKED: u16 = 456;
        pub const SMSG_FISH_ESCAPED: u16 = 457;
        pub const CMSG_BUG: u32 = 458;
        pub const SMSG_NOTIFICATION: u16 = 459;
        pub const CMSG_PLAYED_TIME: u32 = 460;
        pub const SMSG_PLAYED_TIME: u16 = 461;
        pub const CMSG_QUERY_TIME: u32 = 462;
        pub const SMSG_QUERY_TIME_RESPONSE: u16 = 463;
        pub const SMSG_LOG_XPGAIN: u16 = 464;
        pub const SMSG_AURACASTLOG: u16 = 465;
        pub const CMSG_RECLAIM_CORPSE: u32 = 466;
        pub const CMSG_WRAP_ITEM: u32 = 467;
        pub const SMSG_LEVELUP_INFO: u16 = 468;
        pub const MSG_MINIMAP_PING: u16 = 469;
        pub const SMSG_RESISTLOG: u16 = 470;
        pub const SMSG_ENCHANTMENTLOG: u16 = 471;
        pub const CMSG_SET_SKILL_CHEAT: u32 = 472;
        pub const SMSG_START_MIRROR_TIMER: u16 = 473;
        pub const SMSG_PAUSE_MIRROR_TIMER: u16 = 474;
        pub const SMSG_STOP_MIRROR_TIMER: u16 = 475;
        pub const CMSG_PING: u32 = 476;
        pub const SMSG_PONG: u16 = 477;
        pub const SMSG_CLEAR_COOLDOWN: u16 = 478;
        pub const SMSG_GAMEOBJECT_PAGETEXT: u16 = 479;
        pub const CMSG_SETSHEATHED: u32 = 480;
        pub const SMSG_COOLDOWN_CHEAT: u16 = 481;
        pub const SMSG_SPELL_DELAYED: u16 = 482;
        pub const CMSG_QUEST_POI_QUERY: u32 = 483;
        pub const SMSG_QUEST_POI_QUERY_RESPONSE: u16 = 484;
        pub const CMSG_GHOST: u32 = 485;
        pub const CMSG_GM_INVIS: u32 = 486;
        pub const SMSG_INVALID_PROMOTION_CODE: u16 = 487;
        pub const MSG_GM_BIND_OTHER: u16 = 488;
        pub const MSG_GM_SUMMON: u16 = 489;
        pub const SMSG_ITEM_TIME_UPDATE: u16 = 490;
        pub const SMSG_ITEM_ENCHANT_TIME_UPDATE: u16 = 491;
        pub const SMSG_AUTH_CHALLENGE: u16 = 492;
        pub const CMSG_AUTH_SESSION: u32 = 493;
        pub const SMSG_AUTH_RESPONSE: u16 = 494;
        pub const MSG_GM_SHOWLABEL: u16 = 495;
        pub const CMSG_PET_CAST_SPELL: u32 = 496;
        pub const MSG_SAVE_GUILD_EMBLEM: u16 = 497;
        pub const MSG_TABARDVENDOR_ACTIVATE: u16 = 498;
        pub const SMSG_PLAY_SPELL_VISUAL: u16 = 499;
        pub const CMSG_ZONEUPDATE: u32 = 500;
        pub const SMSG_PARTYKILLLOG: u16 = 501;
        pub const SMSG_COMPRESSED_UPDATE_OBJECT: u16 = 502;
        pub const SMSG_PLAY_SPELL_IMPACT: u16 = 503;
        pub const SMSG_EXPLORATION_EXPERIENCE: u16 = 504;
        pub const CMSG_GM_SET_SECURITY_GROUP: u32 = 505;
        pub const CMSG_GM_NUKE: u32 = 506;
        pub const MSG_RANDOM_ROLL: u16 = 507;
        pub const SMSG_ENVIRONMENTALDAMAGELOG: u16 = 508;
        pub const CMSG_CHANGEPLAYER_DIFFICULTY: u32 = 509;
        pub const SMSG_RWHOIS: u16 = 510;
        pub const SMSG_LFG_PLAYER_REWARD: u16 = 511;
        pub const SMSG_LFG_TELEPORT_DENIED: u16 = 512;
        pub const CMSG_UNLEARN_SPELL: u32 = 513;
        pub const CMSG_UNLEARN_SKILL: u32 = 514;
        pub const SMSG_REMOVED_SPELL: u16 = 515;
        pub const CMSG_DECHARGE: u32 = 516;
        pub const CMSG_GMTICKET_CREATE: u32 = 517;
        pub const SMSG_GMTICKET_CREATE: u16 = 518;
        pub const CMSG_GMTICKET_UPDATETEXT: u32 = 519;
        pub const SMSG_GMTICKET_UPDATETEXT: u16 = 520;
        pub const SMSG_ACCOUNT_DATA_TIMES: u16 = 521;
        pub const CMSG_REQUEST_ACCOUNT_DATA: u32 = 522;
        pub const CMSG_UPDATE_ACCOUNT_DATA: u32 = 523;
        pub const SMSG_UPDATE_ACCOUNT_DATA: u16 = 524;
        pub const SMSG_CLEAR_FAR_SIGHT_IMMEDIATE: u16 = 525;
        pub const SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT: u16 = 526;
        pub const CMSG_GM_TEACH: u32 = 527;
        pub const CMSG_GM_CREATE_ITEM_TARGET: u32 = 528;
        pub const CMSG_GMTICKET_GETTICKET: u32 = 529;
        pub const SMSG_GMTICKET_GETTICKET: u16 = 530;
        pub const CMSG_UNLEARN_TALENTS: u32 = 531;
        pub const SMSG_INSTANCE_ENCOUNTER: u16 = 532;
        pub const SMSG_GAMEOBJECT_DESPAWN_ANIM: u16 = 533;
        pub const MSG_CORPSE_QUERY: u16 = 534;
        pub const CMSG_GMTICKET_DELETETICKET: u32 = 535;
        pub const SMSG_GMTICKET_DELETETICKET: u16 = 536;
        pub const SMSG_CHAT_WRONG_FACTION: u16 = 537;
        pub const CMSG_GMTICKET_SYSTEMSTATUS: u32 = 538;
        pub const SMSG_GMTICKET_SYSTEMSTATUS: u16 = 539;
        pub const CMSG_SPIRIT_HEALER_ACTIVATE: u32 = 540;
        pub const CMSG_SET_STAT_CHEAT: u32 = 541;
        pub const SMSG_QUEST_FORCE_REMOVED: u16 = 542;
        pub const CMSG_SKILL_BUY_STEP: u32 = 543;
        pub const CMSG_SKILL_BUY_RANK: u32 = 544;
        pub const CMSG_XP_CHEAT: u32 = 545;
        pub const SMSG_SPIRIT_HEALER_CONFIRM: u16 = 546;
        pub const CMSG_CHARACTER_POINT_CHEAT: u32 = 547;
        pub const SMSG_GOSSIP_POI: u16 = 548;
        pub const CMSG_CHAT_IGNORED: u32 = 549;
        pub const CMSG_GM_VISION: u32 = 550;
        pub const CMSG_SERVER_COMMAND: u32 = 551;
        pub const CMSG_GM_SILENCE: u32 = 552;
        pub const CMSG_GM_REVEALTO: u32 = 553;
        pub const CMSG_GM_RESURRECT: u32 = 554;
        pub const CMSG_GM_SUMMONMOB: u32 = 555;
        pub const CMSG_GM_MOVECORPSE: u32 = 556;
        pub const CMSG_GM_FREEZE: u32 = 557;
        pub const CMSG_GM_UBERINVIS: u32 = 558;
        pub const CMSG_GM_REQUEST_PLAYER_INFO: u32 = 559;
        pub const SMSG_GM_PLAYER_INFO: u16 = 560;
        pub const CMSG_GUILD_RANK: u32 = 561;
        pub const CMSG_GUILD_ADD_RANK: u32 = 562;
        pub const CMSG_GUILD_DEL_RANK: u32 = 563;
        pub const CMSG_GUILD_SET_PUBLIC_NOTE: u32 = 564;
        pub const CMSG_GUILD_SET_OFFICER_NOTE: u32 = 565;
        pub const SMSG_LOGIN_VERIFY_WORLD: u16 = 566;
        pub const CMSG_CLEAR_EXPLORATION: u32 = 567;
        pub const CMSG_SEND_MAIL: u32 = 568;
        pub const SMSG_SEND_MAIL_RESULT: u16 = 569;
        pub const CMSG_GET_MAIL_LIST: u32 = 570;
        pub const SMSG_MAIL_LIST_RESULT: u16 = 571;
        pub const CMSG_BATTLEFIELD_LIST: u32 = 572;
        pub const SMSG_BATTLEFIELD_LIST: u16 = 573;
        pub const CMSG_BATTLEFIELD_JOIN: u32 = 574;
        pub const SMSG_FORCE_SET_VEHICLE_REC_ID: u16 = 575;
        pub const CMSG_SET_VEHICLE_REC_ID_ACK: u32 = 576;
        pub const CMSG_TAXICLEARNODE: u32 = 577;
        pub const CMSG_TAXIENABLENODE: u32 = 578;
        pub const CMSG_ITEM_TEXT_QUERY: u32 = 579;
        pub const SMSG_ITEM_TEXT_QUERY_RESPONSE: u16 = 580;
        pub const CMSG_MAIL_TAKE_MONEY: u32 = 581;
        pub const CMSG_MAIL_TAKE_ITEM: u32 = 582;
        pub const CMSG_MAIL_MARK_AS_READ: u32 = 583;
        pub const CMSG_MAIL_RETURN_TO_SENDER: u32 = 584;
        pub const CMSG_MAIL_DELETE: u32 = 585;
        pub const CMSG_MAIL_CREATE_TEXT_ITEM: u32 = 586;
        pub const SMSG_SPELLLOGMISS: u16 = 587;
        pub const SMSG_SPELLLOGEXECUTE: u16 = 588;
        pub const SMSG_DEBUGAURAPROC: u16 = 589;
        pub const SMSG_PERIODICAURALOG: u16 = 590;
        pub const SMSG_SPELLDAMAGESHIELD: u16 = 591;
        pub const SMSG_SPELLNONMELEEDAMAGELOG: u16 = 592;
        pub const CMSG_LEARN_TALENT: u32 = 593;
        pub const SMSG_RESURRECT_FAILED: u16 = 594;
        pub const CMSG_TOGGLE_PVP: u32 = 595;
        pub const SMSG_ZONE_UNDER_ATTACK: u16 = 596;
        pub const MSG_AUCTION_HELLO: u16 = 597;
        pub const CMSG_AUCTION_SELL_ITEM: u32 = 598;
        pub const CMSG_AUCTION_REMOVE_ITEM: u32 = 599;
        pub const CMSG_AUCTION_LIST_ITEMS: u32 = 600;
        pub const CMSG_AUCTION_LIST_OWNER_ITEMS: u32 = 601;
        pub const CMSG_AUCTION_PLACE_BID: u32 = 602;
        pub const SMSG_AUCTION_COMMAND_RESULT: u16 = 603;
        pub const SMSG_AUCTION_LIST_RESULT: u16 = 604;
        pub const SMSG_AUCTION_OWNER_LIST_RESULT: u16 = 605;
        pub const SMSG_AUCTION_BIDDER_NOTIFICATION: u16 = 606;
        pub const SMSG_AUCTION_OWNER_NOTIFICATION: u16 = 607;
        pub const SMSG_PROCRESIST: u16 = 608;
        pub const SMSG_COMBAT_EVENT_FAILED: u16 = 609;
        pub const SMSG_DISPEL_FAILED: u16 = 610;
        pub const SMSG_SPELLORDAMAGE_IMMUNE: u16 = 611;
        pub const CMSG_AUCTION_LIST_BIDDER_ITEMS: u32 = 612;
        pub const SMSG_AUCTION_BIDDER_LIST_RESULT: u16 = 613;
        pub const SMSG_SET_FLAT_SPELL_MODIFIER: u16 = 614;
        pub const SMSG_SET_PCT_SPELL_MODIFIER: u16 = 615;
        pub const CMSG_SET_AMMO: u32 = 616;
        pub const SMSG_CORPSE_RECLAIM_DELAY: u16 = 617;
        pub const CMSG_SET_ACTIVE_MOVER: u32 = 618;
        pub const CMSG_PET_CANCEL_AURA: u32 = 619;
        pub const CMSG_PLAYER_AI_CHEAT: u32 = 620;
        pub const CMSG_CANCEL_AUTO_REPEAT_SPELL: u32 = 621;
        pub const MSG_GM_ACCOUNT_ONLINE: u16 = 622;
        pub const MSG_LIST_STABLED_PETS: u16 = 623;
        pub const CMSG_STABLE_PET: u32 = 624;
        pub const CMSG_UNSTABLE_PET: u32 = 625;
        pub const CMSG_BUY_STABLE_SLOT: u32 = 626;
        pub const SMSG_STABLE_RESULT: u16 = 627;
        pub const CMSG_STABLE_REVIVE_PET: u32 = 628;
        pub const CMSG_STABLE_SWAP_PET: u32 = 629;
        pub const MSG_QUEST_PUSH_RESULT: u16 = 630;
        pub const SMSG_PLAY_MUSIC: u16 = 631;
        pub const SMSG_PLAY_OBJECT_SOUND: u16 = 632;
        pub const CMSG_REQUEST_PET_INFO: u32 = 633;
        pub const CMSG_FAR_SIGHT: u32 = 634;
        pub const SMSG_SPELLDISPELLOG: u16 = 635;
        pub const SMSG_DAMAGE_CALC_LOG: u16 = 636;
        pub const CMSG_ENABLE_DAMAGE_LOG: u32 = 637;
        pub const CMSG_GROUP_CHANGE_SUB_GROUP: u32 = 638;
        pub const CMSG_REQUEST_PARTY_MEMBER_STATS: u32 = 639;
        pub const CMSG_GROUP_SWAP_SUB_GROUP: u32 = 640;
        pub const CMSG_RESET_FACTION_CHEAT: u32 = 641;
        pub const CMSG_AUTOSTORE_BANK_ITEM: u32 = 642;
        pub const CMSG_AUTOBANK_ITEM: u32 = 643;
        pub const MSG_QUERY_NEXT_MAIL_TIME: u16 = 644;
        pub const SMSG_RECEIVED_MAIL: u16 = 645;
        pub const SMSG_RAID_GROUP_ONLY: u16 = 646;
        pub const CMSG_SET_DURABILITY_CHEAT: u32 = 647;
        pub const CMSG_SET_PVP_RANK_CHEAT: u32 = 648;
        pub const CMSG_ADD_PVP_MEDAL_CHEAT: u32 = 649;
        pub const CMSG_DEL_PVP_MEDAL_CHEAT: u32 = 650;
        pub const CMSG_SET_PVP_TITLE: u32 = 651;
        pub const SMSG_PVP_CREDIT: u16 = 652;
        pub const SMSG_AUCTION_REMOVED_NOTIFICATION: u16 = 653;
        pub const CMSG_GROUP_RAID_CONVERT: u32 = 654;
        pub const CMSG_GROUP_ASSISTANT_LEADER: u32 = 655;
        pub const CMSG_BUYBACK_ITEM: u32 = 656;
        pub const SMSG_SERVER_MESSAGE: u16 = 657;
        pub const CMSG_SET_SAVED_INSTANCE_EXTEND: u32 = 658;
        pub const SMSG_LFG_OFFER_CONTINUE: u16 = 659;
        pub const CMSG_TEST_DROP_RATE: u32 = 660;
        pub const SMSG_TEST_DROP_RATE_RESULT: u16 = 661;
        pub const CMSG_LFG_GET_STATUS: u32 = 662;
        pub const SMSG_SHOW_MAILBOX: u16 = 663;
        pub const SMSG_RESET_RANGED_COMBAT_TIMER: u16 = 664;
        pub const SMSG_CHAT_NOT_IN_PARTY: u16 = 665;
        pub const CMSG_GMTICKETSYSTEM_TOGGLE: u32 = 666;
        pub const CMSG_CANCEL_GROWTH_AURA: u32 = 667;
        pub const SMSG_CANCEL_AUTO_REPEAT: u16 = 668;
        pub const SMSG_STANDSTATE_UPDATE: u16 = 669;
        pub const SMSG_LOOT_ALL_PASSED: u16 = 670;
        pub const SMSG_LOOT_ROLL_WON: u16 = 671;
        pub const CMSG_LOOT_ROLL: u32 = 672;
        pub const SMSG_LOOT_START_ROLL: u16 = 673;
        pub const SMSG_LOOT_ROLL: u16 = 674;
        pub const CMSG_LOOT_MASTER_GIVE: u32 = 675;
        pub const SMSG_LOOT_MASTER_LIST: u16 = 676;
        pub const SMSG_SET_FORCED_REACTIONS: u16 = 677;
        pub const SMSG_SPELL_FAILED_OTHER: u16 = 678;
        pub const SMSG_GAMEOBJECT_RESET_STATE: u16 = 679;
        pub const CMSG_REPAIR_ITEM: u32 = 680;
        pub const SMSG_CHAT_PLAYER_NOT_FOUND: u16 = 681;
        pub const MSG_TALENT_WIPE_CONFIRM: u16 = 682;
        pub const SMSG_SUMMON_REQUEST: u16 = 683;
        pub const CMSG_SUMMON_RESPONSE: u32 = 684;
        pub const MSG_DEV_SHOWLABEL: u16 = 685;
        pub const SMSG_MONSTER_MOVE_TRANSPORT: u16 = 686;
        pub const SMSG_PET_BROKEN: u16 = 687;
        pub const MSG_MOVE_FEATHER_FALL: u16 = 688;
        pub const MSG_MOVE_WATER_WALK: u16 = 689;
        pub const CMSG_SERVER_BROADCAST: u32 = 690;
        pub const CMSG_SELF_RES: u32 = 691;
        pub const SMSG_FEIGN_DEATH_RESISTED: u16 = 692;
        pub const CMSG_RUN_SCRIPT: u32 = 693;
        pub const SMSG_SCRIPT_MESSAGE: u16 = 694;
        pub const SMSG_DUEL_COUNTDOWN: u16 = 695;
        pub const SMSG_AREA_TRIGGER_MESSAGE: u16 = 696;
        pub const CMSG_SHOWING_HELM: u32 = 697;
        pub const CMSG_SHOWING_CLOAK: u32 = 698;
        pub const SMSG_ROLE_CHOSEN: u16 = 699;
        pub const SMSG_PLAYER_SKINNED: u16 = 700;
        pub const SMSG_DURABILITY_DAMAGE_DEATH: u16 = 701;
        pub const CMSG_SET_EXPLORATION: u32 = 702;
        pub const CMSG_SET_ACTIONBAR_TOGGLES: u32 = 703;
        pub const MSG_DELETE_GUILD_CHARTER: u16 = 704;
        pub const MSG_PETITION_RENAME: u16 = 705;
        pub const SMSG_INIT_WORLD_STATES: u16 = 706;
        pub const SMSG_UPDATE_WORLD_STATE: u16 = 707;
        pub const CMSG_ITEM_NAME_QUERY: u32 = 708;
        pub const SMSG_ITEM_NAME_QUERY_RESPONSE: u16 = 709;
        pub const SMSG_PET_ACTION_FEEDBACK: u16 = 710;
        pub const CMSG_CHAR_RENAME: u32 = 711;
        pub const SMSG_CHAR_RENAME: u16 = 712;
        pub const CMSG_MOVE_SPLINE_DONE: u32 = 713;
        pub const CMSG_MOVE_FALL_RESET: u32 = 714;
        pub const SMSG_INSTANCE_SAVE_CREATED: u16 = 715;
        pub const SMSG_RAID_INSTANCE_INFO: u16 = 716;
        pub const CMSG_REQUEST_RAID_INFO: u32 = 717;
        pub const CMSG_MOVE_TIME_SKIPPED: u32 = 718;
        pub const CMSG_MOVE_FEATHER_FALL_ACK: u32 = 719;
        pub const CMSG_MOVE_WATER_WALK_ACK: u32 = 720;
        pub const CMSG_MOVE_NOT_ACTIVE_MOVER: u32 = 721;
        pub const SMSG_PLAY_SOUND: u16 = 722;
        pub const CMSG_BATTLEFIELD_STATUS: u32 = 723;
        pub const SMSG_BATTLEFIELD_STATUS: u16 = 724;
        pub const CMSG_BATTLEFIELD_PORT: u32 = 725;
        pub const MSG_INSPECT_HONOR_STATS: u16 = 726;
        pub const CMSG_BATTLEMASTER_HELLO: u32 = 727;
        pub const CMSG_MOVE_START_SWIM_CHEAT: u32 = 728;
        pub const CMSG_MOVE_STOP_SWIM_CHEAT: u32 = 729;
        pub const SMSG_FORCE_WALK_SPEED_CHANGE: u16 = 730;
        pub const CMSG_FORCE_WALK_SPEED_CHANGE_ACK: u32 = 731;
        pub const SMSG_FORCE_SWIM_BACK_SPEED_CHANGE: u16 = 732;
        pub const CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK: u32 = 733;
        pub const SMSG_FORCE_TURN_RATE_CHANGE: u16 = 734;
        pub const CMSG_FORCE_TURN_RATE_CHANGE_ACK: u32 = 735;
        pub const MSG_PVP_LOG_DATA: u16 = 736;
        pub const CMSG_LEAVE_BATTLEFIELD: u32 = 737;
        pub const CMSG_AREA_SPIRIT_HEALER_QUERY: u32 = 738;
        pub const CMSG_AREA_SPIRIT_HEALER_QUEUE: u32 = 739;
        pub const SMSG_AREA_SPIRIT_HEALER_TIME: u16 = 740;
        pub const CMSG_GM_UNTEACH: u32 = 741;
        pub const SMSG_WARDEN_DATA: u16 = 742;
        pub const CMSG_WARDEN_DATA: u32 = 743;
        pub const SMSG_GROUP_JOINED_BATTLEGROUND: u16 = 744;
        pub const MSG_BATTLEGROUND_PLAYER_POSITIONS: u16 = 745;
        pub const CMSG_PET_STOP_ATTACK: u32 = 746;
        pub const SMSG_BINDER_CONFIRM: u16 = 747;
        pub const SMSG_BATTLEGROUND_PLAYER_JOINED: u16 = 748;
        pub const SMSG_BATTLEGROUND_PLAYER_LEFT: u16 = 749;
        pub const CMSG_BATTLEMASTER_JOIN: u32 = 750;
        pub const SMSG_ADDON_INFO: u16 = 751;
        pub const CMSG_PET_UNLEARN: u32 = 752;
        pub const SMSG_PET_UNLEARN_CONFIRM: u16 = 753;
        pub const SMSG_PARTY_MEMBER_STATS_FULL: u16 = 754;
        pub const CMSG_PET_SPELL_AUTOCAST: u32 = 755;
        pub const SMSG_WEATHER: u16 = 756;
        pub const SMSG_PLAY_TIME_WARNING: u16 = 757;
        pub const SMSG_MINIGAME_SETUP: u16 = 758;
        pub const SMSG_MINIGAME_STATE: u16 = 759;
        pub const CMSG_MINIGAME_MOVE: u32 = 760;
        pub const SMSG_MINIGAME_MOVE_FAILED: u16 = 761;
        pub const SMSG_RAID_INSTANCE_MESSAGE: u16 = 762;
        pub const SMSG_COMPRESSED_MOVES: u16 = 763;
        pub const CMSG_GUILD_INFO_TEXT: u32 = 764;
        pub const SMSG_CHAT_RESTRICTED: u16 = 765;
        pub const SMSG_SPLINE_SET_RUN_SPEED: u16 = 766;
        pub const SMSG_SPLINE_SET_RUN_BACK_SPEED: u16 = 767;
        pub const SMSG_SPLINE_SET_SWIM_SPEED: u16 = 768;
        pub const SMSG_SPLINE_SET_WALK_SPEED: u16 = 769;
        pub const SMSG_SPLINE_SET_SWIM_BACK_SPEED: u16 = 770;
        pub const SMSG_SPLINE_SET_TURN_RATE: u16 = 771;
        pub const SMSG_SPLINE_MOVE_UNROOT: u16 = 772;
        pub const SMSG_SPLINE_MOVE_FEATHER_FALL: u16 = 773;
        pub const SMSG_SPLINE_MOVE_NORMAL_FALL: u16 = 774;
        pub const SMSG_SPLINE_MOVE_SET_HOVER: u16 = 775;
        pub const SMSG_SPLINE_MOVE_UNSET_HOVER: u16 = 776;
        pub const SMSG_SPLINE_MOVE_WATER_WALK: u16 = 777;
        pub const SMSG_SPLINE_MOVE_LAND_WALK: u16 = 778;
        pub const SMSG_SPLINE_MOVE_START_SWIM: u16 = 779;
        pub const SMSG_SPLINE_MOVE_STOP_SWIM: u16 = 780;
        pub const SMSG_SPLINE_MOVE_SET_RUN_MODE: u16 = 781;
        pub const SMSG_SPLINE_MOVE_SET_WALK_MODE: u16 = 782;
        pub const CMSG_GM_NUKE_ACCOUNT: u32 = 783;
        pub const MSG_GM_DESTROY_CORPSE: u16 = 784;
        pub const CMSG_GM_DESTROY_ONLINE_CORPSE: u32 = 785;
        pub const CMSG_ACTIVATETAXIEXPRESS: u32 = 786;
        pub const SMSG_SET_FACTION_ATWAR: u16 = 787;
        pub const SMSG_GAMETIMEBIAS_SET: u16 = 788;
        pub const CMSG_DEBUG_ACTIONS_START: u32 = 789;
        pub const CMSG_DEBUG_ACTIONS_STOP: u32 = 790;
        pub const CMSG_SET_FACTION_INACTIVE: u32 = 791;
        pub const CMSG_SET_WATCHED_FACTION: u32 = 792;
        pub const MSG_MOVE_TIME_SKIPPED: u16 = 793;
        pub const SMSG_SPLINE_MOVE_ROOT: u16 = 794;
        pub const CMSG_SET_EXPLORATION_ALL: u32 = 795;
        pub const SMSG_INVALIDATE_PLAYER: u16 = 796;
        pub const CMSG_RESET_INSTANCES: u32 = 797;
        pub const SMSG_INSTANCE_RESET: u16 = 798;
        pub const SMSG_INSTANCE_RESET_FAILED: u16 = 799;
        pub const SMSG_UPDATE_LAST_INSTANCE: u16 = 800;
        pub const MSG_RAID_TARGET_UPDATE: u16 = 801;
        pub const MSG_RAID_READY_CHECK: u16 = 802;
        pub const CMSG_LUA_USAGE: u32 = 803;
        pub const SMSG_PET_ACTION_SOUND: u16 = 804;
        pub const SMSG_PET_DISMISS_SOUND: u16 = 805;
        pub const SMSG_GHOSTEE_GONE: u16 = 806;
        pub const CMSG_GM_UPDATE_TICKET_STATUS: u32 = 807;
        pub const SMSG_GM_TICKET_STATUS_UPDATE: u16 = 808;
        pub const MSG_SET_DUNGEON_DIFFICULTY: u16 = 809;
        pub const CMSG_GMSURVEY_SUBMIT: u32 = 810;
        pub const SMSG_UPDATE_INSTANCE_OWNERSHIP: u16 = 811;
        pub const CMSG_IGNORE_KNOCKBACK_CHEAT: u32 = 812;
        pub const SMSG_CHAT_PLAYER_AMBIGUOUS: u16 = 813;
        pub const MSG_DELAY_GHOST_TELEPORT: u16 = 814;
        pub const SMSG_SPELLINSTAKILLLOG: u16 = 815;
        pub const SMSG_SPELL_UPDATE_CHAIN_TARGETS: u16 = 816;
        pub const CMSG_CHAT_FILTERED: u32 = 817;
        pub const SMSG_EXPECTED_SPAM_RECORDS: u16 = 818;
        pub const SMSG_SPELLSTEALLOG: u16 = 819;
        pub const CMSG_LOTTERY_QUERY_OBSOLETE: u32 = 820;
        pub const SMSG_LOTTERY_QUERY_RESULT_OBSOLETE: u16 = 821;
        pub const CMSG_BUY_LOTTERY_TICKET_OBSOLETE: u32 = 822;
        pub const SMSG_LOTTERY_RESULT_OBSOLETE: u16 = 823;
        pub const SMSG_CHARACTER_PROFILE: u16 = 824;
        pub const SMSG_CHARACTER_PROFILE_REALM_CONNECTED: u16 = 825;
        pub const SMSG_DEFENSE_MESSAGE: u16 = 826;
        pub const SMSG_INSTANCE_DIFFICULTY: u16 = 827;
        pub const MSG_GM_RESETINSTANCELIMIT: u16 = 828;
        pub const SMSG_MOTD: u16 = 829;
        pub const SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY: u16 = 830;
        pub const SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY: u16 = 831;
        pub const CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK: u32 = 832;
        pub const MSG_MOVE_START_SWIM_CHEAT: u16 = 833;
        pub const MSG_MOVE_STOP_SWIM_CHEAT: u16 = 834;
        pub const SMSG_MOVE_SET_CAN_FLY: u16 = 835;
        pub const SMSG_MOVE_UNSET_CAN_FLY: u16 = 836;
        pub const CMSG_MOVE_SET_CAN_FLY_ACK: u32 = 837;
        pub const CMSG_MOVE_SET_FLY: u32 = 838;
        pub const CMSG_SOCKET_GEMS: u32 = 839;
        pub const CMSG_ARENA_TEAM_CREATE: u32 = 840;
        pub const SMSG_ARENA_TEAM_COMMAND_RESULT: u16 = 841;
        pub const MSG_MOVE_UPDATE_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY: u16 = 842;
        pub const CMSG_ARENA_TEAM_QUERY: u32 = 843;
        pub const SMSG_ARENA_TEAM_QUERY_RESPONSE: u16 = 844;
        pub const CMSG_ARENA_TEAM_ROSTER: u32 = 845;
        pub const SMSG_ARENA_TEAM_ROSTER: u16 = 846;
        pub const CMSG_ARENA_TEAM_INVITE: u32 = 847;
        pub const SMSG_ARENA_TEAM_INVITE: u16 = 848;
        pub const CMSG_ARENA_TEAM_ACCEPT: u32 = 849;
        pub const CMSG_ARENA_TEAM_DECLINE: u32 = 850;
        pub const CMSG_ARENA_TEAM_LEAVE: u32 = 851;
        pub const CMSG_ARENA_TEAM_REMOVE: u32 = 852;
        pub const CMSG_ARENA_TEAM_DISBAND: u32 = 853;
        pub const CMSG_ARENA_TEAM_LEADER: u32 = 854;
        pub const SMSG_ARENA_TEAM_EVENT: u16 = 855;
        pub const CMSG_BATTLEMASTER_JOIN_ARENA: u32 = 856;
        pub const MSG_MOVE_START_ASCEND: u16 = 857;
        pub const MSG_MOVE_STOP_ASCEND: u16 = 858;
        pub const SMSG_ARENA_TEAM_STATS: u16 = 859;
        pub const CMSG_LFG_JOIN: u32 = 860;
        pub const CMSG_LFG_LEAVE: u32 = 861;
        pub const CMSG_LFG_SEARCH_JOIN: u32 = 862;
        pub const CMSG_LFG_SEARCH_LEAVE: u32 = 863;
        pub const SMSG_LFG_SEARCH_RESULTS: u16 = 864;
        pub const SMSG_LFG_PROPOSAL_UPDATE: u16 = 865;
        pub const CMSG_LFG_PROPOSAL_RESULT: u32 = 866;
        pub const SMSG_LFG_ROLE_CHECK_UPDATE: u16 = 867;
        pub const SMSG_LFG_JOIN_RESULT: u16 = 868;
        pub const SMSG_LFG_QUEUE_STATUS: u16 = 869;
        pub const CMSG_SET_LFG_COMMENT: u32 = 870;
        pub const SMSG_LFG_UPDATE_PLAYER: u16 = 871;
        pub const SMSG_LFG_UPDATE_PARTY: u16 = 872;
        pub const SMSG_LFG_UPDATE_SEARCH: u16 = 873;
        pub const CMSG_LFG_SET_ROLES: u32 = 874;
        pub const CMSG_LFG_SET_NEEDS: u32 = 875;
        pub const CMSG_LFG_BOOT_PLAYER_VOTE: u32 = 876;
        pub const SMSG_LFG_BOOT_PLAYER: u16 = 877;
        pub const CMSG_LFG_GET_PLAYER_INFO: u32 = 878;
        pub const SMSG_LFG_PLAYER_INFO: u16 = 879;
        pub const CMSG_LFG_TELEPORT: u32 = 880;
        pub const CMSG_LFG_GET_PARTY_INFO: u32 = 881;
        pub const SMSG_LFG_PARTY_INFO: u16 = 882;
        pub const SMSG_TITLE_EARNED: u16 = 883;
        pub const CMSG_SET_TITLE: u32 = 884;
        pub const CMSG_CANCEL_MOUNT_AURA: u32 = 885;
        pub const SMSG_ARENA_ERROR: u16 = 886;
        pub const MSG_INSPECT_ARENA_TEAMS: u16 = 887;
        pub const SMSG_DEATH_RELEASE_LOC: u16 = 888;
        pub const CMSG_CANCEL_TEMP_ENCHANTMENT: u32 = 889;
        pub const SMSG_FORCED_DEATH_UPDATE: u16 = 890;
        pub const CMSG_CHEAT_SET_HONOR_CURRENCY: u32 = 891;
        pub const CMSG_CHEAT_SET_ARENA_CURRENCY: u32 = 892;
        pub const MSG_MOVE_SET_FLIGHT_SPEED_CHEAT: u16 = 893;
        pub const MSG_MOVE_SET_FLIGHT_SPEED: u16 = 894;
        pub const MSG_MOVE_SET_FLIGHT_BACK_SPEED_CHEAT: u16 = 895;
        pub const MSG_MOVE_SET_FLIGHT_BACK_SPEED: u16 = 896;
        pub const SMSG_FORCE_FLIGHT_SPEED_CHANGE: u16 = 897;
        pub const CMSG_FORCE_FLIGHT_SPEED_CHANGE_ACK: u32 = 898;
        pub const SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE: u16 = 899;
        pub const CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK: u32 = 900;
        pub const SMSG_SPLINE_SET_FLIGHT_SPEED: u16 = 901;
        pub const SMSG_SPLINE_SET_FLIGHT_BACK_SPEED: u16 = 902;
        pub const CMSG_MAELSTROM_INVALIDATE_CACHE: u32 = 903;
        pub const SMSG_FLIGHT_SPLINE_SYNC: u16 = 904;
        pub const CMSG_SET_TAXI_BENCHMARK_MODE: u32 = 905;
        pub const SMSG_JOINED_BATTLEGROUND_QUEUE: u16 = 906;
        pub const SMSG_REALM_SPLIT: u16 = 907;
        pub const CMSG_REALM_SPLIT: u32 = 908;
        pub const CMSG_MOVE_CHNG_TRANSPORT: u32 = 909;
        pub const MSG_PARTY_ASSIGNMENT: u16 = 910;
        pub const SMSG_OFFER_PETITION_ERROR: u16 = 911;
        pub const SMSG_TIME_SYNC_REQ: u16 = 912;
        pub const CMSG_TIME_SYNC_RESP: u32 = 913;
        pub const CMSG_SEND_LOCAL_EVENT: u32 = 914;
        pub const CMSG_SEND_GENERAL_TRIGGER: u32 = 915;
        pub const CMSG_SEND_COMBAT_TRIGGER: u32 = 916;
        pub const CMSG_MAELSTROM_GM_SENT_MAIL: u32 = 917;
        pub const SMSG_RESET_FAILED_NOTIFY: u16 = 918;
        pub const SMSG_REAL_GROUP_UPDATE: u16 = 919;
        pub const SMSG_LFG_DISABLED: u16 = 920;
        pub const CMSG_ACTIVE_PVP_CHEAT: u32 = 921;
        pub const CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY: u32 = 922;
        pub const SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE: u16 = 923;
        pub const SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE_WRITE_FILE: u16 = 924;
        pub const SMSG_UPDATE_COMBO_POINTS: u16 = 925;
        pub const SMSG_VOICE_SESSION_ROSTER_UPDATE: u16 = 926;
        pub const SMSG_VOICE_SESSION_LEAVE: u16 = 927;
        pub const SMSG_VOICE_SESSION_ADJUST_PRIORITY: u16 = 928;
        pub const CMSG_VOICE_SET_TALKER_MUTED_REQUEST: u32 = 929;
        pub const SMSG_VOICE_SET_TALKER_MUTED: u16 = 930;
        pub const SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE: u16 = 931;
        pub const SMSG_SET_EXTRA_AURA_INFO_OBSOLETE: u16 = 932;
        pub const SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE_OBSOLETE: u16 = 933;
        pub const SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE: u16 = 934;
        pub const MSG_MOVE_START_DESCEND: u16 = 935;
        pub const CMSG_IGNORE_REQUIREMENTS_CHEAT: u32 = 936;
        pub const SMSG_IGNORE_REQUIREMENTS_CHEAT: u16 = 937;
        pub const SMSG_SPELL_CHANCE_PROC_LOG: u16 = 938;
        pub const CMSG_MOVE_SET_RUN_SPEED: u32 = 939;
        pub const SMSG_DISMOUNT: u16 = 940;
        pub const MSG_MOVE_UPDATE_CAN_FLY: u16 = 941;
        pub const MSG_RAID_READY_CHECK_CONFIRM: u16 = 942;
        pub const CMSG_VOICE_SESSION_ENABLE: u32 = 943;
        pub const SMSG_VOICE_SESSION_ENABLE: u16 = 944;
        pub const SMSG_VOICE_PARENTAL_CONTROLS: u16 = 945;
        pub const CMSG_GM_WHISPER: u32 = 946;
        pub const SMSG_GM_MESSAGECHAT: u16 = 947;
        pub const MSG_GM_GEARRATING: u16 = 948;
        pub const CMSG_COMMENTATOR_ENABLE: u32 = 949;
        pub const SMSG_COMMENTATOR_STATE_CHANGED: u16 = 950;
        pub const CMSG_COMMENTATOR_GET_MAP_INFO: u32 = 951;
        pub const SMSG_COMMENTATOR_MAP_INFO: u16 = 952;
        pub const CMSG_COMMENTATOR_GET_PLAYER_INFO: u32 = 953;
        pub const SMSG_COMMENTATOR_GET_PLAYER_INFO: u16 = 954;
        pub const SMSG_COMMENTATOR_PLAYER_INFO: u16 = 955;
        pub const CMSG_COMMENTATOR_ENTER_INSTANCE: u32 = 956;
        pub const CMSG_COMMENTATOR_EXIT_INSTANCE: u32 = 957;
        pub const CMSG_COMMENTATOR_INSTANCE_COMMAND: u32 = 958;
        pub const SMSG_CLEAR_TARGET: u16 = 959;
        pub const CMSG_BOT_DETECTED: u32 = 960;
        pub const SMSG_CROSSED_INEBRIATION_THRESHOLD: u16 = 961;
        pub const CMSG_CHEAT_PLAYER_LOGIN: u32 = 962;
        pub const CMSG_CHEAT_PLAYER_LOOKUP: u32 = 963;
        pub const SMSG_CHEAT_PLAYER_LOOKUP: u16 = 964;
        pub const SMSG_KICK_REASON: u16 = 965;
        pub const MSG_RAID_READY_CHECK_FINISHED: u16 = 966;
        pub const CMSG_COMPLAIN: u32 = 967;
        pub const SMSG_COMPLAIN_RESULT: u16 = 968;
        pub const SMSG_FEATURE_SYSTEM_STATUS: u16 = 969;
        pub const CMSG_GM_SHOW_COMPLAINTS: u32 = 970;
        pub const CMSG_GM_UNSQUELCH: u32 = 971;
        pub const CMSG_CHANNEL_SILENCE_VOICE: u32 = 972;
        pub const CMSG_CHANNEL_SILENCE_ALL: u32 = 973;
        pub const CMSG_CHANNEL_UNSILENCE_VOICE: u32 = 974;
        pub const CMSG_CHANNEL_UNSILENCE_ALL: u32 = 975;
        pub const CMSG_TARGET_CAST: u32 = 976;
        pub const CMSG_TARGET_SCRIPT_CAST: u32 = 977;
        pub const CMSG_CHANNEL_DISPLAY_LIST: u32 = 978;
        pub const CMSG_SET_ACTIVE_VOICE_CHANNEL: u32 = 979;
        pub const CMSG_GET_CHANNEL_MEMBER_COUNT: u32 = 980;
        pub const SMSG_CHANNEL_MEMBER_COUNT: u16 = 981;
        pub const CMSG_CHANNEL_VOICE_ON: u32 = 982;
        pub const CMSG_CHANNEL_VOICE_OFF: u32 = 983;
        pub const CMSG_DEBUG_LIST_TARGETS: u32 = 984;
        pub const SMSG_DEBUG_LIST_TARGETS: u16 = 985;
        pub const SMSG_AVAILABLE_VOICE_CHANNEL: u16 = 986;
        pub const CMSG_ADD_VOICE_IGNORE: u32 = 987;
        pub const CMSG_DEL_VOICE_IGNORE: u32 = 988;
        pub const CMSG_PARTY_SILENCE: u32 = 989;
        pub const CMSG_PARTY_UNSILENCE: u32 = 990;
        pub const MSG_NOTIFY_PARTY_SQUELCH: u16 = 991;
        pub const SMSG_COMSAT_RECONNECT_TRY: u16 = 992;
        pub const SMSG_COMSAT_DISCONNECT: u16 = 993;
        pub const SMSG_COMSAT_CONNECT_FAIL: u16 = 994;
        pub const SMSG_VOICE_CHAT_STATUS: u16 = 995;
        pub const CMSG_REPORT_PVP_AFK: u32 = 996;
        pub const SMSG_REPORT_PVP_AFK_RESULT: u16 = 997;
        pub const CMSG_GUILD_BANKER_ACTIVATE: u32 = 998;
        pub const CMSG_GUILD_BANK_QUERY_TAB: u32 = 999;
        pub const SMSG_GUILD_BANK_LIST: u16 = 1000;
        pub const CMSG_GUILD_BANK_SWAP_ITEMS: u32 = 1001;
        pub const CMSG_GUILD_BANK_BUY_TAB: u32 = 1002;
        pub const CMSG_GUILD_BANK_UPDATE_TAB: u32 = 1003;
        pub const CMSG_GUILD_BANK_DEPOSIT_MONEY: u32 = 1004;
        pub const CMSG_GUILD_BANK_WITHDRAW_MONEY: u32 = 1005;
        pub const MSG_GUILD_BANK_LOG_QUERY: u16 = 1006;
        pub const CMSG_SET_CHANNEL_WATCH: u32 = 1007;
        pub const SMSG_USERLIST_ADD: u16 = 1008;
        pub const SMSG_USERLIST_REMOVE: u16 = 1009;
        pub const SMSG_USERLIST_UPDATE: u16 = 1010;
        pub const CMSG_CLEAR_CHANNEL_WATCH: u32 = 1011;
        pub const SMSG_INSPECT_RESULTS: u16 = 1012;
        pub const SMSG_GOGOGO_OBSOLETE: u16 = 1013;
        pub const SMSG_ECHO_PARTY_SQUELCH: u16 = 1014;
        pub const CMSG_SET_TITLE_SUFFIX: u32 = 1015;
        pub const CMSG_SPELLCLICK: u32 = 1016;
        pub const SMSG_LOOT_LIST: u16 = 1017;
        pub const CMSG_GM_CHARACTER_RESTORE: u32 = 1018;
        pub const CMSG_GM_CHARACTER_SAVE: u32 = 1019;
        pub const SMSG_VOICESESSION_FULL: u16 = 1020;
        pub const MSG_GUILD_PERMISSIONS: u16 = 1021;
        pub const MSG_GUILD_BANK_MONEY_WITHDRAWN: u16 = 1022;
        pub const MSG_GUILD_EVENT_LOG_QUERY: u16 = 1023;
        pub const CMSG_MAELSTROM_RENAME_GUILD: u32 = 1024;
        pub const CMSG_GET_MIRRORIMAGE_DATA: u32 = 1025;
        pub const SMSG_MIRRORIMAGE_DATA: u16 = 1026;
        pub const SMSG_FORCE_DISPLAY_UPDATE: u16 = 1027;
        pub const SMSG_SPELL_CHANCE_RESIST_PUSHBACK: u16 = 1028;
        pub const CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT: u32 = 1029;
        pub const SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT: u16 = 1030;
        pub const CMSG_KEEP_ALIVE: u32 = 1031;
        pub const SMSG_RAID_READY_CHECK_ERROR: u16 = 1032;
        pub const CMSG_OPT_OUT_OF_LOOT: u32 = 1033;
        pub const MSG_QUERY_GUILD_BANK_TEXT: u16 = 1034;
        pub const CMSG_SET_GUILD_BANK_TEXT: u32 = 1035;
        pub const CMSG_SET_GRANTABLE_LEVELS: u32 = 1036;
        pub const CMSG_GRANT_LEVEL: u32 = 1037;
        pub const CMSG_REFER_A_FRIEND: u32 = 1038;
        pub const MSG_GM_CHANGE_ARENA_RATING: u16 = 1039;
        pub const CMSG_DECLINE_CHANNEL_INVITE: u32 = 1040;
        pub const SMSG_GROUPACTION_THROTTLED: u16 = 1041;
        pub const SMSG_OVERRIDE_LIGHT: u16 = 1042;
        pub const SMSG_TOTEM_CREATED: u16 = 1043;
        pub const CMSG_TOTEM_DESTROYED: u32 = 1044;
        pub const CMSG_EXPIRE_RAID_INSTANCE: u32 = 1045;
        pub const CMSG_NO_SPELL_VARIANCE: u32 = 1046;
        pub const CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY: u32 = 1047;
        pub const SMSG_QUESTGIVER_STATUS_MULTIPLE: u16 = 1048;
        pub const CMSG_SET_PLAYER_DECLINED_NAMES: u32 = 1049;
        pub const SMSG_SET_PLAYER_DECLINED_NAMES_RESULT: u16 = 1050;
        pub const CMSG_QUERY_SERVER_BUCK_DATA: u32 = 1051;
        pub const CMSG_CLEAR_SERVER_BUCK_DATA: u32 = 1052;
        pub const SMSG_SERVER_BUCK_DATA: u16 = 1053;
        pub const SMSG_SEND_UNLEARN_SPELLS: u16 = 1054;
        pub const SMSG_PROPOSE_LEVEL_GRANT: u16 = 1055;
        pub const CMSG_ACCEPT_LEVEL_GRANT: u32 = 1056;
        pub const SMSG_REFER_A_FRIEND_FAILURE: u16 = 1057;
        pub const SMSG_SPLINE_MOVE_SET_FLYING: u16 = 1058;
        pub const SMSG_SPLINE_MOVE_UNSET_FLYING: u16 = 1059;
        pub const SMSG_SUMMON_CANCEL: u16 = 1060;
        pub const CMSG_CHANGE_PERSONAL_ARENA_RATING: u32 = 1061;
        pub const CMSG_ALTER_APPEARANCE: u32 = 1062;
        pub const SMSG_ENABLE_BARBER_SHOP: u16 = 1063;
        pub const SMSG_BARBER_SHOP_RESULT: u16 = 1064;
        pub const CMSG_CALENDAR_GET_CALENDAR: u32 = 1065;
        pub const CMSG_CALENDAR_GET_EVENT: u32 = 1066;
        pub const CMSG_CALENDAR_GUILD_FILTER: u32 = 1067;
        pub const CMSG_CALENDAR_ARENA_TEAM: u32 = 1068;
        pub const CMSG_CALENDAR_ADD_EVENT: u32 = 1069;
        pub const CMSG_CALENDAR_UPDATE_EVENT: u32 = 1070;
        pub const CMSG_CALENDAR_REMOVE_EVENT: u32 = 1071;
        pub const CMSG_CALENDAR_COPY_EVENT: u32 = 1072;
        pub const CMSG_CALENDAR_EVENT_INVITE: u32 = 1073;
        pub const CMSG_CALENDAR_EVENT_RSVP: u32 = 1074;
        pub const CMSG_CALENDAR_EVENT_REMOVE_INVITE: u32 = 1075;
        pub const CMSG_CALENDAR_EVENT_STATUS: u32 = 1076;
        pub const CMSG_CALENDAR_EVENT_MODERATOR_STATUS: u32 = 1077;
        pub const SMSG_CALENDAR_SEND_CALENDAR: u16 = 1078;
        pub const SMSG_CALENDAR_SEND_EVENT: u16 = 1079;
        pub const SMSG_CALENDAR_FILTER_GUILD: u16 = 1080;
        pub const SMSG_CALENDAR_ARENA_TEAM: u16 = 1081;
        pub const SMSG_CALENDAR_EVENT_INVITE: u16 = 1082;
        pub const SMSG_CALENDAR_EVENT_INVITE_REMOVED: u16 = 1083;
        pub const SMSG_CALENDAR_EVENT_STATUS: u16 = 1084;
        pub const SMSG_CALENDAR_COMMAND_RESULT: u16 = 1085;
        pub const SMSG_CALENDAR_RAID_LOCKOUT_ADDED: u16 = 1086;
        pub const SMSG_CALENDAR_RAID_LOCKOUT_REMOVED: u16 = 1087;
        pub const SMSG_CALENDAR_EVENT_INVITE_ALERT: u16 = 1088;
        pub const SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT: u16 = 1089;
        pub const SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT: u16 = 1090;
        pub const SMSG_CALENDAR_EVENT_REMOVED_ALERT: u16 = 1091;
        pub const SMSG_CALENDAR_EVENT_UPDATED_ALERT: u16 = 1092;
        pub const SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT: u16 = 1093;
        pub const CMSG_CALENDAR_COMPLAIN: u32 = 1094;
        pub const CMSG_CALENDAR_GET_NUM_PENDING: u32 = 1095;
        pub const SMSG_CALENDAR_SEND_NUM_PENDING: u16 = 1096;
        pub const CMSG_SAVE_DANCE: u32 = 1097;
        pub const SMSG_NOTIFY_DANCE: u16 = 1098;
        pub const CMSG_PLAY_DANCE: u32 = 1099;
        pub const SMSG_PLAY_DANCE: u16 = 1100;
        pub const CMSG_LOAD_DANCES: u32 = 1101;
        pub const CMSG_STOP_DANCE: u32 = 1102;
        pub const SMSG_STOP_DANCE: u16 = 1103;
        pub const CMSG_SYNC_DANCE: u32 = 1104;
        pub const CMSG_DANCE_QUERY: u32 = 1105;
        pub const SMSG_DANCE_QUERY_RESPONSE: u16 = 1106;
        pub const SMSG_INVALIDATE_DANCE: u16 = 1107;
        pub const CMSG_DELETE_DANCE: u32 = 1108;
        pub const SMSG_LEARNED_DANCE_MOVES: u16 = 1109;
        pub const CMSG_LEARN_DANCE_MOVE: u32 = 1110;
        pub const CMSG_UNLEARN_DANCE_MOVE: u32 = 1111;
        pub const CMSG_SET_RUNE_COUNT: u32 = 1112;
        pub const CMSG_SET_RUNE_COOLDOWN: u32 = 1113;
        pub const MSG_MOVE_SET_PITCH_RATE_CHEAT: u16 = 1114;
        pub const MSG_MOVE_SET_PITCH_RATE: u16 = 1115;
        pub const SMSG_FORCE_PITCH_RATE_CHANGE: u16 = 1116;
        pub const CMSG_FORCE_PITCH_RATE_CHANGE_ACK: u32 = 1117;
        pub const SMSG_SPLINE_SET_PITCH_RATE: u16 = 1118;
        pub const CMSG_CALENDAR_EVENT_INVITE_NOTES: u32 = 1119;
        pub const SMSG_CALENDAR_EVENT_INVITE_NOTES: u16 = 1120;
        pub const SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT: u16 = 1121;
        pub const CMSG_UPDATE_MISSILE_TRAJECTORY: u32 = 1122;
        pub const SMSG_UPDATE_ACCOUNT_DATA_COMPLETE: u16 = 1123;
        pub const SMSG_TRIGGER_MOVIE: u16 = 1124;
        pub const CMSG_COMPLETE_MOVIE: u32 = 1125;
        pub const CMSG_SET_GLYPH_SLOT: u32 = 1126;
        pub const CMSG_SET_GLYPH: u32 = 1127;
        pub const SMSG_ACHIEVEMENT_EARNED: u16 = 1128;
        pub const SMSG_DYNAMIC_DROP_ROLL_RESULT: u16 = 1129;
        pub const SMSG_CRITERIA_UPDATE: u16 = 1130;
        pub const CMSG_QUERY_INSPECT_ACHIEVEMENTS: u32 = 1131;
        pub const SMSG_RESPOND_INSPECT_ACHIEVEMENTS: u16 = 1132;
        pub const CMSG_DISMISS_CONTROLLED_VEHICLE: u32 = 1133;
        pub const CMSG_COMPLETE_ACHIEVEMENT_CHEAT: u32 = 1134;
        pub const SMSG_QUESTUPDATE_ADD_PVP_KILL: u16 = 1135;
        pub const CMSG_SET_CRITERIA_CHEAT: u32 = 1136;
        pub const SMSG_CALENDAR_RAID_LOCKOUT_UPDATED: u16 = 1137;
        pub const CMSG_UNITANIMTIER_CHEAT: u32 = 1138;
        pub const CMSG_CHAR_CUSTOMIZE: u32 = 1139;
        pub const SMSG_CHAR_CUSTOMIZE: u16 = 1140;
        pub const SMSG_PET_RENAMEABLE: u16 = 1141;
        pub const CMSG_REQUEST_VEHICLE_EXIT: u32 = 1142;
        pub const CMSG_REQUEST_VEHICLE_PREV_SEAT: u32 = 1143;
        pub const CMSG_REQUEST_VEHICLE_NEXT_SEAT: u32 = 1144;
        pub const CMSG_REQUEST_VEHICLE_SWITCH_SEAT: u32 = 1145;
        pub const CMSG_PET_LEARN_TALENT: u32 = 1146;
        pub const CMSG_PET_UNLEARN_TALENTS: u32 = 1147;
        pub const SMSG_SET_PHASE_SHIFT: u16 = 1148;
        pub const SMSG_ALL_ACHIEVEMENT_DATA: u16 = 1149;
        pub const CMSG_FORCE_SAY_CHEAT: u32 = 1150;
        pub const SMSG_HEALTH_UPDATE: u16 = 1151;
        pub const SMSG_POWER_UPDATE: u16 = 1152;
        pub const CMSG_GAMEOBJ_REPORT_USE: u32 = 1153;
        pub const SMSG_HIGHEST_THREAT_UPDATE: u16 = 1154;
        pub const SMSG_THREAT_UPDATE: u16 = 1155;
        pub const SMSG_THREAT_REMOVE: u16 = 1156;
        pub const SMSG_THREAT_CLEAR: u16 = 1157;
        pub const SMSG_CONVERT_RUNE: u16 = 1158;
        pub const SMSG_RESYNC_RUNES: u16 = 1159;
        pub const SMSG_ADD_RUNE_POWER: u16 = 1160;
        pub const CMSG_START_QUEST: u32 = 1161;
        pub const CMSG_REMOVE_GLYPH: u32 = 1162;
        pub const CMSG_DUMP_OBJECTS: u32 = 1163;
        pub const SMSG_DUMP_OBJECTS_DATA: u16 = 1164;
        pub const CMSG_DISMISS_CRITTER: u32 = 1165;
        pub const SMSG_NOTIFY_DEST_LOC_SPELL_CAST: u16 = 1166;
        pub const CMSG_AUCTION_LIST_PENDING_SALES: u32 = 1167;
        pub const SMSG_AUCTION_LIST_PENDING_SALES: u16 = 1168;
        pub const SMSG_MODIFY_COOLDOWN: u16 = 1169;
        pub const SMSG_PET_UPDATE_COMBO_POINTS: u16 = 1170;
        pub const CMSG_ENABLETAXI: u32 = 1171;
        pub const SMSG_PRE_RESURRECT: u16 = 1172;
        pub const SMSG_AURA_UPDATE_ALL: u16 = 1173;
        pub const SMSG_AURA_UPDATE: u16 = 1174;
        pub const CMSG_FLOOD_GRACE_CHEAT: u32 = 1175;
        pub const SMSG_SERVER_FIRST_ACHIEVEMENT: u16 = 1176;
        pub const SMSG_PET_LEARNED_SPELL: u16 = 1177;
        pub const SMSG_PET_REMOVED_SPELL: u16 = 1178;
        pub const CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE: u32 = 1179;
        pub const CMSG_HEARTH_AND_RESURRECT: u32 = 1180;
        pub const SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA: u16 = 1181;
        pub const SMSG_CRITERIA_DELETED: u16 = 1182;
        pub const SMSG_ACHIEVEMENT_DELETED: u16 = 1183;
        pub const CMSG_SERVER_INFO_QUERY: u32 = 1184;
        pub const SMSG_SERVER_INFO_RESPONSE: u16 = 1185;
        pub const CMSG_CHECK_LOGIN_CRITERIA: u32 = 1186;
        pub const SMSG_SERVER_BUCK_DATA_START: u16 = 1187;
        pub const CMSG_SET_BREATH: u32 = 1188;
        pub const CMSG_QUERY_VEHICLE_STATUS: u32 = 1189;
        pub const SMSG_BATTLEGROUND_INFO_THROTTLED: u16 = 1190;
        pub const SMSG_SET_VEHICLE_REC_ID: u16 = 1191;
        pub const CMSG_RIDE_VEHICLE_INTERACT: u32 = 1192;
        pub const CMSG_CONTROLLER_EJECT_PASSENGER: u32 = 1193;
        pub const SMSG_PET_GUIDS: u16 = 1194;
        pub const SMSG_CLIENTCACHE_VERSION: u16 = 1195;
        pub const CMSG_CHANGE_GDF_ARENA_RATING: u32 = 1196;
        pub const CMSG_SET_ARENA_TEAM_RATING_BY_INDEX: u32 = 1197;
        pub const CMSG_SET_ARENA_TEAM_WEEKLY_GAMES: u32 = 1198;
        pub const CMSG_SET_ARENA_TEAM_SEASON_GAMES: u32 = 1199;
        pub const CMSG_SET_ARENA_MEMBER_WEEKLY_GAMES: u32 = 1200;
        pub const CMSG_SET_ARENA_MEMBER_SEASON_GAMES: u32 = 1201;
        pub const SMSG_SET_ITEM_PURCHASE_DATA: u16 = 1202;
        pub const CMSG_GET_ITEM_PURCHASE_DATA: u32 = 1203;
        pub const CMSG_ITEM_PURCHASE_REFUND: u32 = 1204;
        pub const SMSG_ITEM_PURCHASE_REFUND_RESULT: u16 = 1205;
        pub const CMSG_CORPSE_TRANSPORT_QUERY: u32 = 1206;
        pub const SMSG_CORPSE_TRANSPORT_QUERY: u16 = 1207;
        pub const CMSG_UNUSED5: u32 = 1208;
        pub const CMSG_UNUSED6: u32 = 1209;
        pub const CMSG_CALENDAR_EVENT_SIGNUP: u32 = 1210;
        pub const SMSG_CALENDAR_CLEAR_PENDING_ACTION: u16 = 1211;
        pub const SMSG_LOAD_EQUIPMENT_SET: u16 = 1212;
        pub const CMSG_SAVE_EQUIPMENT_SET: u32 = 1213;
        pub const CMSG_ON_MISSILE_TRAJECTORY_COLLISION: u32 = 1214;
        pub const SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION: u16 = 1215;
        pub const SMSG_TALENT_UPDATE: u16 = 1216;
        pub const CMSG_LEARN_TALENT_GROUP: u32 = 1217;
        pub const CMSG_PET_LEARN_TALENT_GROUP: u32 = 1218;
        pub const CMSG_SET_ACTIVE_TALENT_GROUP_OBSOLETE: u32 = 1219;
        pub const CMSG_GM_GRANT_ACHIEVEMENT: u32 = 1220;
        pub const CMSG_GM_REMOVE_ACHIEVEMENT: u32 = 1221;
        pub const CMSG_GM_SET_CRITERIA_FOR_PLAYER: u32 = 1222;
        pub const SMSG_DESTROY_ARENA_UNIT: u16 = 1223;
        pub const SMSG_ARENA_TEAM_CHANGE_FAILED: u16 = 1224;
        pub const CMSG_PROFILEDATA_REQUEST: u32 = 1225;
        pub const SMSG_PROFILEDATA_RESPONSE: u16 = 1226;
        pub const CMSG_START_BATTLEFIELD_CHEAT: u32 = 1227;
        pub const CMSG_END_BATTLEFIELD_CHEAT: u32 = 1228;
        pub const SMSG_COMPOUND_MOVE: u16 = 1229;
        pub const SMSG_MOVE_GRAVITY_DISABLE: u16 = 1230;
        pub const CMSG_MOVE_GRAVITY_DISABLE_ACK: u32 = 1231;
        pub const SMSG_MOVE_GRAVITY_ENABLE: u16 = 1232;
        pub const CMSG_MOVE_GRAVITY_ENABLE_ACK: u32 = 1233;
        pub const MSG_MOVE_GRAVITY_CHNG: u16 = 1234;
        pub const SMSG_SPLINE_MOVE_GRAVITY_DISABLE: u16 = 1235;
        pub const SMSG_SPLINE_MOVE_GRAVITY_ENABLE: u16 = 1236;
        pub const CMSG_USE_EQUIPMENT_SET: u32 = 1237;
        pub const SMSG_USE_EQUIPMENT_SET_RESULT: u16 = 1238;
        pub const CMSG_FORCE_ANIM: u32 = 1239;
        pub const SMSG_FORCE_ANIM: u16 = 1240;
        pub const CMSG_CHAR_FACTION_CHANGE: u32 = 1241;
        pub const SMSG_CHAR_FACTION_CHANGE: u16 = 1242;
        pub const CMSG_PVP_QUEUE_STATS_REQUEST: u32 = 1243;
        pub const SMSG_PVP_QUEUE_STATS: u16 = 1244;
        pub const CMSG_SET_PAID_SERVICE_CHEAT: u32 = 1245;
        pub const SMSG_BATTLEFIELD_MANAGER_ENTRY_INVITE: u16 = 1246;
        pub const CMSG_BATTLEFIELD_MANAGER_ENTRY_INVITE_RESPONSE: u32 = 1247;
        pub const SMSG_BATTLEFIELD_MANAGER_ENTERING: u16 = 1248;
        pub const SMSG_BATTLEFIELD_MANAGER_QUEUE_INVITE: u16 = 1249;
        pub const CMSG_BATTLEFIELD_MANAGER_QUEUE_INVITE_RESPONSE: u32 = 1250;
        pub const CMSG_BATTLEFIELD_MANAGER_QUEUE_REQUEST: u32 = 1251;
        pub const SMSG_BATTLEFIELD_MANAGER_QUEUE_REQUEST_RESPONSE: u16 = 1252;
        pub const SMSG_BATTLEFIELD_MANAGER_EJECT_PENDING: u16 = 1253;
        pub const SMSG_BATTLEFIELD_MANAGER_EJECTED: u16 = 1254;
        pub const CMSG_BATTLEFIELD_MANAGER_EXIT_REQUEST: u32 = 1255;
        pub const SMSG_BATTLEFIELD_MANAGER_STATE_CHANGED: u16 = 1256;
        pub const CMSG_BATTLEFIELD_MANAGER_ADVANCE_STATE: u32 = 1257;
        pub const CMSG_BATTLEFIELD_MANAGER_SET_NEXT_TRANSITION_TIME: u32 = 1258;
        pub const MSG_SET_RAID_DIFFICULTY: u16 = 1259;
        pub const CMSG_XPGAIN: u32 = 1260;
        pub const SMSG_XPGAIN: u16 = 1261;
        pub const SMSG_GMTICKET_RESPONSE_ERROR: u16 = 1262;
        pub const SMSG_GMTICKET_GET_RESPONSE: u16 = 1263;
        pub const CMSG_GMTICKET_RESOLVE_RESPONSE: u32 = 1264;
        pub const SMSG_GMTICKET_RESOLVE_RESPONSE: u16 = 1265;
        pub const SMSG_GMTICKET_CREATE_RESPONSE_TICKET: u16 = 1266;
        pub const CMSG_GM_CREATE_TICKET_RESPONSE: u32 = 1267;
        pub const CMSG_SERVERINFO: u32 = 1268;
        pub const SMSG_SERVERINFO: u16 = 1269;
        pub const CMSG_UI_TIME_REQUEST: u32 = 1270;
        pub const SMSG_UI_TIME: u16 = 1271;
        pub const CMSG_CHAR_RACE_CHANGE: u32 = 1272;
        pub const MSG_VIEW_PHASE_SHIFT: u16 = 1273;
        pub const SMSG_TALENTS_INVOLUNTARILY_RESET: u16 = 1274;
        pub const CMSG_DEBUG_SERVER_GEO: u32 = 1275;
        pub const SMSG_DEBUG_SERVER_GEO: u16 = 1276;
        pub const SMSG_LOOT_UPDATE: u16 = 1277;
        pub const MSG_UPDATE_GROUP_INFO: u16 = 1278;
        pub const CMSG_READY_FOR_ACCOUNT_DATA_TIMES: u32 = 1279;
        pub const CMSG_QUERY_GET_ALL_QUESTS: u32 = 1280;
        pub const SMSG_ALL_QUESTS_COMPLETED: u16 = 1281;
        pub const CMSG_GMLAGREPORT_SUBMIT: u32 = 1282;
        pub const CMSG_AFK_MONITOR_INFO_REQUEST: u32 = 1283;
        pub const SMSG_AFK_MONITOR_INFO_RESPONSE: u16 = 1284;
        pub const CMSG_AFK_MONITOR_INFO_CLEAR: u32 = 1285;
        pub const SMSG_AREA_TRIGGER_NO_CORPSE: u16 = 1286;
        pub const CMSG_GM_NUKE_CHARACTER: u32 = 1287;
        pub const CMSG_LOW_LEVEL_RAID: u32 = 1288;
        pub const CMSG_LOW_LEVEL_RAID_USER: u32 = 1289;
        pub const SMSG_CAMERA_SHAKE: u16 = 1290;
        pub const SMSG_SOCKET_GEMS_RESULT: u16 = 1291;
        pub const CMSG_SET_CHARACTER_MODEL: u32 = 1292;
        pub const SMSG_CONNECT_TO: u16 = 1293;
        pub const CMSG_CONNECT_TO_FAILED: u32 = 1294;
        pub const SMSG_SUSPEND_COMMS: u16 = 1295;
        pub const CMSG_SUSPEND_COMMS_ACK: u32 = 1296;
        pub const SMSG_RESUME_COMMS: u16 = 1297;
        pub const CMSG_AUTH_CONTINUED_SESSION: u32 = 1298;
        pub const CMSG_DROP_NEW_CONNECTION: u32 = 1299;
        pub const SMSG_SEND_ALL_COMBAT_LOG: u16 = 1300;
        pub const SMSG_OPEN_LFG_DUNGEON_FINDER: u16 = 1301;
        pub const SMSG_MOVE_SET_COLLISION_HGT: u16 = 1302;
        pub const CMSG_MOVE_SET_COLLISION_HGT_ACK: u32 = 1303;
        pub const MSG_MOVE_SET_COLLISION_HGT: u16 = 1304;
        pub const CMSG_CLEAR_RANDOM_BG_WIN_TIME: u32 = 1305;
        pub const CMSG_CLEAR_HOLIDAY_BG_WIN_TIME: u32 = 1306;
        pub const CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND: u32 = 1307;
        pub const SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1: u16 = 1308;
        pub const SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2: u16 = 1309;
        pub const SMSG_MULTIPLE_MOVES: u16 = 1310;
    }
}

#[cfg(test)]
mod tests {
    use crate::types::opcodes::Opcode;

    fn get_type_of<T>(_: &T) -> &str {
        std::any::type_name::<T>()
    }

    #[test]
    fn test_opcode_name() {
        assert_eq!(
            Opcode::get_opcode_name(Opcode::LOGIN_PROOF as u32),
            Some("LOGIN_PROOF".to_string()),
        );
        assert_eq!(
            Opcode::get_opcode_name(Opcode::CMSG_CHAR_ENUM),
            Some("CMSG_CHAR_ENUM".to_string()),
        );
        assert_eq!(
            Opcode::get_opcode_name(Opcode::MSG_MOVE_START_FORWARD as u32),
            Some("MSG_MOVE_START_FORWARD".to_string()),
        );
    }

    #[test]
    fn test_opcode_value() {
        assert_eq!(Opcode::LOGIN_PROOF, 1);
        assert_eq!(Opcode::CMSG_CHAR_ENUM, 55);
        assert_eq!(Opcode::MSG_MOVE_START_FORWARD, 181);
    }

    #[test]
    fn test_opcode_field_type() {
        assert_eq!(get_type_of(&Opcode::LOGIN_PROOF), "u8");
        assert_eq!(get_type_of(&Opcode::CMSG_CHAR_ENUM), "u32");
        assert_eq!(get_type_of(&Opcode::MSG_MOVE_START_FORWARD), "u16");
    }
}

#[non_exhaustive]
pub struct WardenOpcode;
#[allow(dead_code)]
impl WardenOpcode {
    pub const WARDEN_CMSG_MODULE_MISSING: u8 = 0;
    pub const WARDEN_CMSG_MODULE_OK: u8 = 1;
    pub const WARDEN_CMSG_CHEAT_CHECKS_RESULT: u8 = 2;
    pub const WARDEN_CMSG_MEM_CHECKS_RESULT: u8 = 3;
    pub const WARDEN_CMSG_HASH_RESULT: u8 = 4;
    pub const WARDEN_CMSG_MODULE_FAILED: u8 = 5;

    pub const WARDEN_SMSG_MODULE_USE: u8 = 0;
    pub const WARDEN_SMSG_MODULE_CACHE: u8 = 1;
    pub const WARDEN_SMSG_CHEAT_CHECKS_REQUEST: u8 = 2;
    pub const WARDEN_SMSG_MODULE_INITIALIZE: u8 = 3;
    pub const WARDEN_SMSG_MEM_CHECKS_REQUEST: u8 = 4;
    pub const WARDEN_SMSG_HASH_REQUEST: u8 = 5;
}